2014-10-10 109 views
0

我正在構建需要根據客戶註冊服務的方式創建虛擬主機的應用程序(部署在Wildfly上)。 例如默認應用程序/服務在名爲main.exampledomain.com的主機上運行。 當客戶A註冊服務時,我需要創建一個虛擬主機A.exampledomain.com,而A.exampledomain.com需要提供與main.exampledomain.com完全相同的WAR/Web內容。以編程方式在Wildfly/Undertow中創建虛擬主機

我可以使用standalone.xml - > subsystem subsystem中的「主機」配置以及jboss-web.xml中的其他虛擬主機配置(針對要部署的所有WAR)執行此操作。

有沒有編程/動態的方式來做到這一點? 這是可能的,我應該使用undertow API來做到這一點嗎? OR 這是可能的,我應該使用Wildfly Management API嗎?

我搜索了一些與此相關的主題,只發現圍繞配置的討論和答案,但沒有找到一個編程的方式來做到這一點。

感謝和問候, GPN

回答

1

有做你需要的東西雙向的。

1)使用管理api,可以通過本地CLI api,REST和java ManagementClient調用。 這將是最簡單的,因爲您只需調用幾個命令即可配置額外的主機及其配置。

2)使用自定義擴展/ ServiceActivator 這樣,您的代碼將作爲WildFly內的子系統運行,您可以使用該方法將UndertowService(頂級管道服務)注入到MSC服務中,並調用創建服務器的方法/ hosts/listeners,...就可以了。

如果您的定製只是在底層子系統中配置少量額外的東西,而不是可能的管理API方式將是最簡單的。 但是,如果您想進行更深層次的集成,並且擁有更多的權力,可以定製自定義子系統以及如何使用自定義子系統。這將允許你做更有趣的事情,比如可能在部署期間修改部署或更改運行應用程序等的某些參數等。