4

我在apache后面使用cxf和jetty通过soap公开一个webservice。目标是在所有情况下都在http://localhost:9000上启动码头,并为其配备 apache 代理,但让自动生成的 wsdl 显示一个适合其运行环境的 soap:address(例如http://api.testing .example.comhttp://api.uat.example.comhttps://api.example.com)。似乎生成的 wsdl2java *Service 类接受 wsdl 的 URL,它必须作为开始的“位置”以及在 soap:address 中返回的字符串。这必须是可配置的,但它并不明显,因此不胜感激。

更清楚一点 - 我通过 Spring 将“WsdlURL”传递给 Service 类的构造函数(到目前为止只有http://localhost:9000有效)。我需要这个问题的解决方案是在 cxf.cml、cxf-.xml、spring 或其他一些配置文件中进行配置更改,而不是在代码中,因为这个参数会根据它所处的环境而改变部署。

4

2 回答 2

4

jaxws:endpoint 配置有一个“publishedEndpointURL”,如果指定了地址,则使用它代替地址。知道 servlet 正确使用它,而不是 100% 确定在码头上。他们共享很多代码,所以它可以工作。

于 2009-11-17T19:07:02.657 回答
0

试试@WebService(wsdlLocation="http://yourdesiredlocation")。不确定它是否会起作用。

于 2009-11-17T18:49:28.927 回答