我正在构建一个应用程序(部署在Wildfly上),需要根据客户注册服务的方式创建虚拟主机。 对于例如默认应用程序/服务在名为main.exampledomain.com的主机上运行。 当客户A注册该服务时,我需要创建一个虚拟主机A.exampledomain.com,而A.exampledomain.com需要提供与main.exampledomain.com完全相同的WAR / Web内容。
我可以使用" host" standalone.xml中的配置 - >子系统,在jboss-web.xml中有额外的虚拟主机配置(对于要部署的所有WAR)。
是否有编程/动态方式来执行此操作? 这是可能的,我应该使用下载API吗?要么 这是可能的,我应该使用Wildfly管理API吗?
我搜索了一些与此相关的主题,并且只找到了有关配置的讨论和答案,但没有以编程方式执行此操作。
谢谢和最诚挚的问候, GPN
答案 0 :(得分:1)
有两种方法可以满足您的需求。
1)使用管理api,可以通过本机CLI api,REST,java ManagementClient调用。 到目前为止,这将是最简单的,因为您需要做的就是调用几个命令来配置额外的主机及其配置。
2)使用自定义扩展/ ServiceActivator 这样,您的代码将作为WildFly内的子系统运行,使用该方法,您可以将UndertowService(顶级服务)注入到您的MSC服务中,并且只需调用创建服务器/主机/侦听器的方法......。 p>
如果您的自定义只是去并且在下载子系统中配置一些额外的东西,那么管理api方式可能是最简单的。 但是,如果您想要进行更深入的集成,并且对定制的内容以及如何使用自定义子系统拥有更多功能。这将允许您做更多有趣的事情,例如在部署期间修改部署或更改运行应用程序等的一些参数等...