在单个JBoss实例上设置多个端口?

问题背景

这是情况。我们正在从战争中运行模拟器servlet。我们要模拟的servlet在单台机器上有许多实例,这些实例通过端口号来区分。我们只想部署一次战争,许多港口都可以访问。

到目前为止我们所拥有的

使用Java Filter(有关web.xml,请参见下文),我们能够根据端口号转发到每个Servlet实现(端口是通过向添加额外的连接器来添加的deploy/jbossweb.sar/server.xml)。它适用于所有Web服务调用,但不适用于wsdl请求,例如http://localhost:8092/simulator/sim?wsdl8092是模拟器中所需的模拟器版本(8091、8092、8093、8094)。根据该请求,wsdl会正确返回(每个模拟器的实现略有不同),只是URLsoap:address标记始终使用端口8091。

注意:我们正在使用JBoss 5.0

web.xml的相关部分:

  <filter>

<filter-name>SimFilter</filter-name>

<filter-class>com.example.filter.MyFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>SimFilter</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

<dispatcher>INCLUDE</dispatcher>

<dispatcher>FORWARD</dispatcher>

</filter-mapping>

回答:

您需要修改Tomcat的配置(JBoss使用Tomcat的嵌入式版本)。

相关文件为:

$ $JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/server.xml

您可以在其中配置绑定端口的一部分。这是默认情况下的内容:

  <!-- A HTTP/1.1 Connector on port 8080 -->

<Connector port="8080" address="${jboss.bind.address}"

maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"

emptySessionPath="true"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true"/>

您可以添加几个“连接器”。您需要的每个端口一个。

然后重新启动您的JBoss。

您将在LOG上看到以下内容:

16:29:13,803 INFO  [Http11BaseProtocol] Initializing Coyote HTTP/1.1 on http-0.0.0.0-8080

16:29:13,804 INFO [Http11BaseProtocol] Initializing Coyote HTTP/1.1 on http-0.0.0.0-8091

16:29:13,805 INFO [Http11BaseProtocol] Initializing Coyote HTTP/1.1 on http-0.0.0.0-8092

16:29:13,805 INFO [Http11BaseProtocol] Initializing Coyote HTTP/1.1 on http-0.0.0.0-8093

16:29:13,805 INFO [Http11BaseProtocol] Initializing Coyote HTTP/1.1 on http-0.0.0.0-8094

这是您需要在server.xml文件中添加的内容:

  <Connector port="8091" address="${jboss.bind.address}"

maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"

emptySessionPath="true"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true"/>

<Connector port="8092" address="${jboss.bind.address}"

maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"

emptySessionPath="true"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true"/>

....

每个新端口一个XML标签。

以上是 在单个JBoss实例上设置多个端口? 的全部内容, 来源链接: utcz.com/qa/399956.html

回到顶部