我有一个 JAX-WS 导入的 WSDL 客户端。当我尝试连接到 Web 服务端点时,JAX-WS 客户端尝试加载 WSDL。为什么?
- 我不想在我的项目中存储 WSDL,
- 我不想再次从网络服务 URL 加载 WSDL?
问题:
- 是否有机会绕过此行为?
- 如何在运行时添加 Web 服务端点 URL?
添加具有相同 QName 和端口名称的端口失败,因为我无法添加相同的端口。添加不同的端口是可以的,但我无法从 Web 服务委托(delegate)获取它,因为 WSDL 不包含添加的端口定义。
JAX-WS 似乎是完全错误的方式:(
最佳答案
今天你很幸运。正如您提到的,有一种方法。
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);
关于java - 来自 WSDL 的 JAX-WS 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15645154/