在单个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-808016: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