在IMO中,提供者告诉你更改服务端点(即到web服务的位置),而不是客户端端点(我不知道这可能是什么)。要更改服务端点,基本上有两个选项。
使用绑定提供程序设置终结点URL
第一个选项是更改
BindingProvider的
BindingProvider.ENDPOINT_ADDRESS_属性值(每个代理都实现
javax.xml.ws.BindingProvider接口):
...EchoService service = new EchoService();Echo port = service.getEchoPort();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]));...


