SOAP客户端端口混乱
问题描述:
我正在使用wsimport来生成SOAP客户端类。然而,问题在于,当服务器在端口8080上运行时,会有一个代理使它可以通过端口80从Internet访问。在WSDL中,仍然指定了服务器端口8080。SOAP客户端端口混乱
现在,当我连接到服务器时,客户端请求的第一件事是WSDL。然后它检索此WSDl中的URL并尝试使用它连接到服务器,由于端口8080无法从外部访问,因此显然失败。
有没有解决此问题的标准方法?
谢谢。
答
如果您的客户端代码得到WSDL成功,那么你可以像这样明确地指定端点地址:
ExampleService exampleService = new ExampleService();
Example example = exampleService.getExamplePort();
BindingProvider bindingProvider = (BindingProvider) example;
bindingProvider.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
"http://ws.someservice.com:80/soap/ExampleBean");
最后一行将覆盖WSDL,这是一个内部的端口URL。
我对这里使用wsimport的更多细节:http://shrubbery.homeip.net/c/display/W/Consuming+a+Web+Service+with+Java+6+and+JAX-WS
哪些语言和平台,是这样吗? – 2011-04-26 14:36:07
@John Saunders wsimport是一个随Java 6一起提供的JAX-WS工具,所以语言是Java,而这个平台......以及这个不重要。 :) – 2011-05-10 16:24:30
@Joshua:谢谢。你是说这没关系,如果这是在j2ee上运行? – 2011-05-10 17:07:23