SOAP客户端端口混乱

问题描述:

我正在使用wsimport来生成SOAP客户端类。然而,问题在于,当服务器在端口8080上运行时,会有一个代理使它可以通过端口80从Internet访问。在WSDL中,仍然指定了服务器端口8080。SOAP客户端端口混乱

现在,当我连接到服务器时,客户端请求的第一件事是WSDL。然后它检索此WSDl中的URL并尝试使用它连接到服务器,由于端口8080无法从外部访问,因此显然失败。

有没有解决此问题的标准方法?

谢谢。

+0

哪些语言和平台,是这样吗? – 2011-04-26 14:36:07

+0

@John Saunders wsimport是一个随Java 6一起提供的JAX-WS工具,所以语言是Java,而这个平台......以及这个不重要。 :) – 2011-05-10 16:24:30

+0

@Joshua:谢谢。你是说这没关系,如果这是在j2ee上运行? – 2011-05-10 17:07:23

如果您的客户端代码得到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