这是情况。我们正在运行一场战争中的模拟器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网站的
相关部分。 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>
我没有看到'jbossweb-tomcat55.sar',只有'jbossweb.sar'。在那里我已经为每个端口都有一个连接器。有没有我可能错过的特定选项? – Adam 2011-03-02 19:04:53
是的,在JBoss 5中它是jbossweb.sar。添加端口,然后重新启动APP SERVER。用'netstat'查看端口是否在监听... – 2011-03-02 19:27:49
@Adam:检查更新后的答案并在LOG上查找。 – 2011-03-02 19:30:46