【问题标题】:Stub client generation Apache CXF存根客户端生成 Apache CXF
【发布时间】:2017-01-04 07:58:20
【问题描述】:

我在访问一个 wsdl 时看到了一种行为。我使用 Apache Axis 1.3 以及 JAX-WS wsimport 工具来生成客户端存根,它成功地生成了存根。 但是当我使用 apache-cxf-2.7.18 并使用 wsdl2java 命令时,它不会生成存根,给我错误。

WSDL 在 https 上。我也在 wsdl2java bat 文件中添加了代理。 wsdl 包含一个也在 https 上的。

我遇到的错误:

enter image description here

它似乎无法包含底层 wsdl。 谁能指点我做错了什么?

我相信,当我进行任何服务发布时,它不能像 Axis 但不支持 CXF 那样是特定于客户端实现的。或者我能做到吗?有什么可以适用的限制吗?

【问题讨论】:

  • 可能是 wsdl2java 中的代理配置错误。似乎可执行文件不允许指定代理。您是否使用配置代理环境变量的 ant 任务进行了测试?
  • 我用 maven 试过。在 settings.xml 中,我设置了代理详细信息。 wsdl2java 失败:org.apache.cxf.wsdl11.WSDLRuntimeException:无法创建 wsdl 定义文件:/C:/test-client/src/main/resources/Sample.wsdl:WSDLException(在 /wsdl:definitions/wsdl:import) : faultCode=PARSER_ERROR: 解析“WSDL 链接 - 抱歉我不能提及”时出现问题。: java.net.ConnectException: Connection timed out: connect -> [Help 1]
  • 在 maven,settings.xml 我做了这个 optionaltruehttpXXXXXX用户名> XXXXXXproxy-server.XXXX.com8080local.net|some.host.com代理>
  • 这个网址很奇怪file:/C:/test-client/src/main/resources/Sample.wsdl。你说过你有 SSL 连接问题,但是这个 url 指向一个本地文件而不是一个 https:// 资源
  • 尝试更改设置<protocol>https</protocol>。我在一些帖子中读到它在某些情况下有效。

标签: web-services cxf axis webservice-client


【解决方案1】:

(cmets 中的解决方案)

错误日志显示下载 WSDL 时出现连接错误,可能是由于通过 maven 使用 SSL 连接时 wsdl2java 中的代理配置错误

Maven 不是不能使用代理配置下载导入,因为你已经下载了 wsdl,你也可以将所有引用的 url 资源下载到本地文件并更改 <wsdl:import location= 以使用每个本地文件。使用相对路径./yourfile或URL格式file://path/to/the/file

【讨论】:

  • 但我很奇怪为什么 cxf 无法通过 ssl 获得连接,而轴 wsdl2java 和 jax-ws wsimport 工具能够
猜你喜欢
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 2017-02-18
相关资源
最近更新 更多