【问题标题】:Developing JAX-WS Web Service Clients runs into error开发 JAX-WS Web 服务客户端遇到错误
【发布时间】:2013-11-27 22:22:56
【问题描述】:

我正在关注 Netbean 的 tutorial 和 eclipse 教程以从 wsdl 生成代码,但在 netbeans 中会遇到以下错误

"Two declarations cause a collision in the ObjectFactory class". 

在 Eclipse 中会遇到以下错误。

"WAB0399E Error in generating Java from WSDL:  java.io.IOException: Emitter failure.  There is an undefined portType (I3Service) in the WSDL document http://i3-cert.vueling.com/Vueling.I3.WCF.WebService/I3Service.svc?wsdl=wsdl0.
Hint: make sure <binding type=".."> is fully qualified."

我该怎么办?

【问题讨论】:

  • 那个 WSDL 不正确,有很多导入的 wsdl 和 xsd 的交叉引用和重复的元素定义。

标签: java web-services struts2 wsdl jax-ws


【解决方案1】:

JAX-WS 使用 JAXB 从 WSDL 生成工件,如果您在模式中定义了两个或多个具有相同名称的类型,JAXB 无法在同一个包中两次(冲突)为该类型生成工件。您可以使用 JAXB 绑定文件解决问题,通过这种方式,JAXB 可以将工件生成到不同包中以用于重复类型,但需要时间来检测这些类型和一些详细配置。检查 Oracle wsimport 工具并尝试使用 -verbose 选项获取 WSDL 的工件以跟踪并获取冲突类型,查看http://docs.oracle.com/javase/7/docs/technotes/tools/share/wsimport.html,wsimport 也可用于 javase 6。那个 WSDL 没有很好的定义,尝试使用一些验证工具(如 xmlspy 或类似的)解析它并检查结果。

【讨论】:

    【解决方案2】:

    可能有很多问题,例如当我的位置由 soap:address 指定时,我遇到了同样的问题:地址为空。

    您需要发布您的 xml 以帮助我们解决问题。

    请查看 wsdl 及其规范。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多