0

我有一个 JAX-WS 导入的 WSDL 客户端。当我尝试连接到 web 服务端点时,JAX-WS 客户端会尝试加载 WSDL。为什么?

  • 我不想将 WSDL存储在我的项目中,
  • 我不想再次从 Web 服务 URL加载WSDL?

问题

  • 有没有机会绕过这种行为?
  • 如何在运行时添加 Web 服务端点 URL?

添加具有相同 QName 和端口名称的端口失败,因为我无法添加相同的端口。添加不同的端口是可以的,但我无法从 web 服务委托中获取它,因为 WSDL 不包含添加的端口定义。

JAX-WS 似乎是完全错误的方式:(

4

1 回答 1

2

今天你很幸运。正如你所提到的,有一种方法。

QName qname = new QName("http://thenamespace", "FooService");
FooService service = new FooService(null, qname); // null for ignore WSDL file
Foo port = service.getFooPort();
BindingProvider bindingProvider = (BindingProvider) port;
bindingProvider.getRequestContext()
    .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
    "http://foo.com/soap/fooBean");

// Use the service
Object obj = port.doSomething(param);
于 2013-03-27T03:53:28.607 回答