Java 如何更改webservice url端点?
我使用JBoss utils(JAX-WS兼容)生成了一个web服务客户机,使用Eclipse的“来自wsdl的web服务客户机”。
所以,我提供的唯一东西是指向web服务WSDL的url。
现在,web服务提供者告诉我更改web服务的“客户端端点应用程序访问的url”。
它是什么以及如何改变它?
回答:
在IMO中,提供者告诉你更改服务端点(即到web服务的位置),而不是客户端端点(我不知道这可能是什么)。要更改服务端点,基本上有两个选项。
使用绑定提供程序设置终结点URL
第一个选项是更改BindingProvider
的BindingProvider.ENDPOINT_ADDRESS_
属性值(每个代理都实现javax.xml.ws.BindingProvider
接口):
...EchoService service = new EchoService();
Echo port = service.getEchoPort();
/* Set NEW Endpoint Location */
String endpointURL = "http://NEW_ENDPOINT_URL";
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
System.out.println("Server said: " + echo.echo(args[0]));
...
缺点是,这只在原始WSDL仍然可以访问时才起作用。不推荐。
使用WSDL获取端点URL
第二个选项是从WSDL获取端点URL。
...URL newEndpoint = new URL("NEW_ENDPOINT_URL");
QName qname = new QName("http://ws.mycompany.tld","EchoService");
EchoService service = new EchoService(newEndpoint, qname);
Echo port = service.getEchoPort();
System.out.println("Server said: " + echo.echo(args[0]));
...
以上是 Java 如何更改webservice url端点? 的全部内容, 来源链接: utcz.com/qa/419623.html