Java 如何更改webservice url端点?

我使用JBoss utils(JAX-WS兼容)生成了一个web服务客户机,使用Eclipse的“来自wsdl的web服务客户机”。

所以,我提供的唯一东西是指向web服务WSDL的url。

现在,web服务提供者告诉我更改web服务的“客户端端点应用程序访问的url”。

它是什么以及如何改变它?

回答:

在IMO中,提供者告诉你更改服务端点(即到web服务的位置),而不是客户端端点(我不知道这可能是什么)。要更改服务端点,基本上有两个选项。

使用绑定提供程序设置终结点URL

第一个选项是更改BindingProviderBindingProvider.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

回到顶部