java - 来自 WSDL 的 JAX-WS 端口

标签 java web-services wsdl jax-ws port

我有一个 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/

相关文章:

java - 从 xml 文档中提取标签

Java Web 服务/JAXB - 抽象父类(super class)

wcf - SoapUI wsdl wcf net.tcp 缺少导入程序

java - JSF 不更新变量

java - org.json.JSONObject 是否违反了 Object.equals() 契约(Contract)?

java - Groovy:向 URL 发送请求,忽略结果

java - 在 Android 中实现 SOAP API

java - 在指定路径下发布Jax-WS Webservice

java - Spring配置Web服务: get XsdSchema from wsdl

php - 由于 "failed to load external entity"无法连接到 Magento SOAP API v2