【发布时间】:2011-09-19 09:09:22
【问题描述】:
我真的需要你的帮助。我读到 jax-ws webservice 的 wsdl 将为每个请求动态生成。这样,soap端点之类的地址就会被调整为请求的url。
就我而言,无论是内部请求还是外部请求,地址总是引用 localhost:8080。
有人知道我该如何处理这个问题吗?
提前致谢
也许我没有很好地描述我的问题。
- 我有一个用 jax-ws 创建的 ws
- 它部署在 5.5.17 的 tomcat 服务器上
- 使用本地 ip 访问可以正常工作http://192.168.1.20:8070/mywebservice?wsdl
- 使用外部 ip 访问不工作。 ws“引擎”使用本地ip而不是外部ip重写url external.domain.de:8070/mywebservice?wsdl
对于 external.domain,wsdl 中的所有 url 都被重写为本地 ip 到 xsdschemaLocation 和 soap:address 位置
代理服务器有问题吗?通过代理的请求使 webservice 认为它是本地访问而不是外部访问。
如何在服务器端防止这种行为?更改 web.xml 或 sun.jax(很遗憾,客户端无法更改)
【问题讨论】:
-
How to change webservice url endpoint? 的可能重复项 - 我们有一个很好的答案
-
链接线程中的两个解决方案使用硬编码的 URL。那不是很整洁。为了在其他服务器上部署,每次都必须编辑和重新编译源代码。是否没有选项可以在 web.xml 或 sun-jaxws.xml 中设置端点 url?那太棒了。