使用java而不使用WSDL的Soap客户端服务 - 如何?

时间:2012-04-26 09:33:19

标签: java web-services soap wsdl

我使用jdk附带的JAX-WS来创建soap客户端。现在,服务提供商没有公开wsdl。如果我知道提供的服务,如何在没有wsdl的情况下创建soap客户端?

编辑:我可以自由使用任何soap api /工具,不限于JAX-WS。

Edit2:这是点击服务网址时显示的消息。 目前已禁用此服务的元数据发布。 并建议配置服务行为配置。我知道该服务是在.Net中完成的。但是,如何使用提供的服务行为相关的详细信息来访问Java中的服务?

2 个答案:

答案 0 :(得分:1)

您可以直接使用HttpClient,但您必须手动编码您发送的每个xml邮件并解析您收到的每封邮件。您也可以手动创建与xml匹配的对象,并使用jaxb来编组或取消编组消息。

答案 1 :(得分:0)

您可以创建一个扩展javax.xml.ws.Service的客户端服务提供程序,然后覆盖服务构造函数,接受您当前拥有的远程服务的URL。

public class Foo extends Service
{ 
  ... 

  public Foo(URL wsdlLocation)
  {
    super(wsdlLocation, SERVICE);
  }
}

然后在构建您的Provider Binding时,您明确地将URL传递给服务接口。

Foo service = new Foo(url);
BindingProvider binding = (BindingProvider)service;