我有一个使用来自 WSDL 的 wsimport 生成的 web 服务实现。此服务部署在 Spring webapp 中的 Tomcat 服务器中。spring的配置文件(只有webservice部分)是这样的
<wss:binding url="/fooService">
<wss:service>
<ws:service bean="#fooService">
</wss:service>
</wss:binding>
当我在 tomcat 中部署这个 webapp 时,如果我去,我可以获得 WSDL
http://localhost:8080/foo/fooService?wsdl
wsdl soap:address 属性是这样的:
<service name="FooService">
<port name="FooService" binding="tns:FooServiceBinding">
<soap:address location="http://localhost:8080/foo/fooService"/>
</port>
</service>
现在,一切都好。
问题是在生产中,我们有一个 Apache Web 服务器,这个服务器将请求重定向到 Tomcat。它也可以,但是当我们获得 WSDL 时,soap:address 仍然是 localhost:8080,我们需要将它作为 Web 服务的公共 url。
有任何想法吗?
非常感谢你。