如何将 2 个应用程序(同一只耳朵)部署到不同端口上的单个 jboss。有可能吗?

How to deploy 2 applications(same ear) to a single jboss on different ports. Is it even possible?

我使用 Jboss eap 6.4。 我想同时部署这些耳朵,但在不同的端口。 如果我只用两只耳朵进行部署,我会得到:DuplicateServiceException: Service /app already registered.

要为端口 8080 上的 App1.war 和端口 8543 上的 App2.war 配置 JBoss,您应该执行以下步骤:

  • 首先,您必须为 8543 添加套接字绑定(因为端口 8080 已经定义)。

<socket-binding name="http2" port="8543"/>

  • 在 Web 子系统中,应声明以下 连接器

<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" />

<connector name="http2" protocol="HTTP/1.1" scheme="http" socket-binding="http2" />

  • 此外,在 web 子系统中,应声明以下两个 虚拟服务器

<virtual-server name="host1" enable-welcome-root="false" default-web-module="App1.war"> <alias name="first.com"/> </virtual-server>

<virtual-server name="host2" enable-welcome-root="false" default-web-module="App2.war"> <alias name="second.com"/> </virtual-server>

  • 将相应的虚拟服务器与相应的连接器相关联:

<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"> <virtual-server name="host1"/> </connector> <connector name="http2" protocol="HTTP/1.1" scheme="http" socket-binding="http2"> <virtual-server name="host2"/> </connector>

  • 最后一步是在WEB-INF中为每个应用配置正确的jboss-web.xml:

- For App1.war <jboss-web> <virtual-host>host1</virtual-host> </jboss-web>

- For App2.war <jboss-web> <virtual-host>host2</virtual-host> </jboss-web>

现在可以通过以下网址访问每个应用程序:

对于App1.war - http://first.com:8080/App1/index.jsp

对于App2.war - http://second.com:8543/App2/index.jsp

请注意,在系统的/etc/hosts中,必须添加相应的虚拟服务器别名:

127.0.0.1 localhost.localdomain localhost first.com second.com