首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何更改webservice url端点?

如何更改webservice url端点?
EN

Stack Overflow用户
提问于 2010-03-22 16:15:30
回答 3查看 212.4K关注 0票数 107

我使用Eclipse (兼容JAX-WS)使用JBoss 'web service client from a wsdl‘生成了web服务客户端。

所以,我唯一提供的就是一个web服务WSDL的url。

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

它是什么?如何改变它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-22 16:59:21

据我所知,提供者告诉您更改服务端点(即在何处访问web服务),而不是客户端端点(我不知道这是什么)。要更改服务端点,您基本上有两个选择。

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

第一个选项是更改BindingProviderBindingProvider.ENDPOINT_ADDRESS_PROPERTY属性值(每个代理都实现javax.xml.ws.BindingProvider接口):

代码语言:javascript
复制
...
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。

代码语言:javascript
复制
...
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]));
...
票数 182
EN

Stack Overflow用户

发布于 2015-03-20 07:31:39

为了在这里补充一些说明,当您创建服务时,服务类使用默认的'wsdlLocation',它是在从wsdl构建类时插入的。因此,如果您有一个名为SomeService的服务类,并且您创建了一个如下实例:

代码语言:javascript
复制
SomeService someService = new SomeService();

如果您查看SomeService内部,您将看到构造函数如下所示:

代码语言:javascript
复制
public SomeService() {
        super(__getWsdlLocation(), SOMESERVICE_QNAME);
}

因此,如果希望它指向另一个URL,只需使用接受URL参数的构造函数(也有6个用于设置qname和特性的构造函数)。例如,如果您设置了一个侦听端口9999的本地TCP/IP监视器,并且您想要重定向到该URL:

代码语言:javascript
复制
URL newWsdlLocation = new URL("http://theServerName:9999/somePath");
SomeService someService = new SomeService(newWsdlLocation);

它将在服务内部调用此构造函数:

代码语言:javascript
复制
public SomeService(URL wsdlLocation) {
    super(wsdlLocation, SOMESERVICE_QNAME);
}
票数 19
EN

Stack Overflow用户

发布于 2013-11-09 18:10:05

要更改结束地址属性,请编辑wsdl文件

代码语言:javascript
复制
<wsdl:definitions.......
  <wsdl:service name="serviceMethodName">
    <wsdl:port binding="tns:serviceMethodNameSoapBinding" name="serviceMethodName">
      <soap:address location="http://service_end_point_adress"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
票数 -6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2490737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档