我在apache后面使用cxf和jetty通过soap公开web服务。目标是启动码头http://本地主机:9000在所有情况下都有 apache 代理,但让自动生成的 wsdl 显示一个适合其运行环境的soap:address(例如http://api.testing.example.com, http://api.uat.example.com, https://api.example.com)。似乎生成的 wsdl2java *Service 类接受 wsdl 的 URL,并且它必须充当开始的“位置”以及soap:address 中返回的字符串。这必须是可配置的,但并不明显,所以建议值得赞赏。
更清楚一点 - 我通过 Spring 将“WsdlURL”传递给 Service 类的构造函数(到目前为止仅http://本地主机:9000作品)。我需要解决此问题的方法是在 cxf.cml、cxf-.xml、spring 或其他配置文件中进行配置更改,而不是在代码中更改,因为此参数将根据其所处的环境而更改部署。
jaxws:endpoint 配置有一个“publishedEndpointURL”,如果指定了地址,则使用该“publishedEndpointURL”来代替地址。知道 servlet 正确使用它,但在码头上不能 100% 确定。他们共享很多代码,因此它可能有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)