问题背景
这是情况。我们正在从战争中运行模拟器servlet。我们正在模拟的servlet在一台机器上有许多实例,这些实例由端口号区分。我们只想部署一个可以被许多端口访问的单一战争。
我们到目前为止
使用java Filter
(参见下面的web.xml),我们可以根据端口号转发到每个servlet实现(通过向deploy/jbossweb.sar/server.xml
添加额外的连接器来添加端口)。此适用于所有网络服务电话,但不适用于wsdl请求,例如http://localhost:8092/simulator/sim?wsdl
,其中8092是许多模拟器的所需版本(8091,8092, 8093,8094)。在该请求上,正确返回wsdl(每个模拟器实现略有不同),但URL soap: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>
答案 0 :(得分:7)
您需要修改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标记。
答案 1 :(得分:0)
有一个疑问,因为所有连接都被重定向到8443,给出多个配置有什么意义呢?它会避免港口拥堵吗?