0

我正在构建一个应用程序(部署在 Wildfly 上),该应用程序需要根据客户注册服务的方式创建虚拟主机。例如,默认应用程序/服务在名为 main.exampledomain.com 的主机上运行。当客户 A 注册服务时,我需要创建一个虚拟主机 A.exampledomain.com,而 A.exampledomain.com 需要提供与 main.exampledomain.com 完全相同的 WAR/Web 内容。

我可以使用standalone.xml 中的“主机”配置来做到这一点——> 子系统undertow,以及jboss-web.xml 中的附加虚拟主机配置(对于要部署的所有WAR)。

有没有一种程序化/动态的方式来做到这一点?这可能吗?我应该使用 undertow API 来做到这一点吗?或者这可能吗?我应该使用 Wildfly 管理 API 吗?

我搜索了一些与此相关的主题,只找到了关于配置的讨论和答案,但没有找到一种编程方式来做到这一点。

谢谢和最好的问候,GPN

4

1 回答 1

1

有两种方法可以做你需要的。

1) 使用管理api,可以通过native CLI api、REST、java ManagementClient 调用。到目前为止,这将是最简单的,因为您需要做的就是调用一些命令来配置额外的主机及其配置。

2) 使用自定义扩展/ServiceActivator 这样一来,您的代码将作为 WildFly 中的子系统运行,通过这种方法,您可以将 UndertowService(顶级 undertow 服务)注入您的 MSC 服务并调用用于创建服务器/主机/侦听器的方法, ... 在上面。

如果您的自定义只是在 undertow 子系统中配置一些额外的东西,那么管理 api 方式可能是最简单的。但是,如果您想进行更深入的集成并对定制的内容以及我将如何使用定制子系统拥有更大的权力。这将允许您做更有趣的事情,例如在部署期间修改部署或更改运行应用程序的一些参数等......

于 2014-10-10T16:15:03.463 回答