3

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

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

Edit2:这是点击服务 url 时显示的消息。此服务的元数据发布当前已禁用。并建议配置服务行为配置。我了解该服务是在 .Net 中完成的。但是如何使用提供的服务行为相关细节来访问 Java 中的服务呢?

4

2 回答 2

3

您可以直接使用 HttpClient,但您必须手动编码您发送的每条 xml 消息并解析您收到的每条消息。您还可以手动创建与您的 xml 匹配的对象并使用 jaxb 来编组/解组消息。

于 2012-04-26T09:46:59.137 回答
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;
于 2012-04-26T09:49:21.677 回答