我有一个工作正常的网络服务。我正在尝试建立一个客户端来使用这项服务。
我遇到的一个限制是我的电话必须通过代理服务器进行记录(第三方托管服务提供商)。我的问题是我可以将代理指定为WSDL位置,并且工作正常。返回的结果WSDL指定原始服务地址:
我在代理处配置了我的WSDL位置:
http://[proxy ip address]/csp/sql/ws.Booking.BookingService2.cls?wsdl=1
WSDL显示:
<service name="Booking">
<port name="BookingSoap" binding="s0:BookingSoap">
<soap:address location="https://alpha2.premier.com:443/
csp/sql/ws.Booking.BookingService2.cls"/>
</port>
</service>
我想使用代理地址(192.168.98.45)来调用此服务。
有谁知道如何调用自定义服务位置?在生成的CXF代码中,我可以指定WSDL位置和服务名称,但不能指定服务位置。
提前致谢。
的Al
答案 0 :(得分:0)
我设法找到了解决方法。
我更改了绑定提供程序或端口上的ENDPOINT_ADDRESS_PROPERTY。这是我的代码,用于实例化由CXF生成的Web服务:
com.micro.bartws.booking.Booking ss = new com.micro.bartws.booking.Booking(wsdl);
BookingSoap port = ss.getBookingSoap();
/* Set NEW Endpoint Location */
String endpointURL = hubProperties.getProperty("intouchservicelocation");
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
因此导入了WSDL,并且我们更改了终点。这是一种享受。
由于