我正在尝试使用'wsimport'为此WebService生成Java SOAP客户端:
https://mutalyzer.nl/services/?wsdl
我收到错误,因为有两个名为'transcriptInfo'和'TranscriptInfo'的节点:
[错误]具有相同名称“nl.mutalyzer._2_0.services.TranscriptInfo”的类/接口已在使用中。使用类自定义来解决此冲突。 https://mutalyzer.nl/services/?wsdl
的第2行
我使用wsimport
参数-B-XautoNameResolution
并且无效:
[ERROR]两个声明在ObjectFactory类中导致冲突。 第2行...
我正在尝试进行Class customizacion。我正在使用名为'nameCorrections.xml'的绑定文件,其中包含:
<jaxws:bindings
wsdlLocation="https://mutalyzer.nl/services/?wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema/xs:complexType[@name='transcriptInfo']">
<jaxws:class name="TranscriptInfoByNM"/>
</jaxws:bindings>
</jaxws:bindings>
当我跑步时它不起作用:
wsimport -b nameCorrections.xml http ...(WDSL网址,我不能发布两个以上的链接)
我收到了这个错误:
[警告] s4s-elt-invalid-content.1:'transcriptInfo'的内容无效。元素'绑定'无效,错位或过于频繁发生。 线?的.... 我究竟做错了什么?
答案 0 :(得分:2)
我认为应该使用&#39; jaxb&#39;绑定代替&#39; jaxws&#39;那些。最后,我使用这个绑定文件使wsimport正常工作:
<jaxws:bindings
wsdlLocation="https://mutalyzer.nl/services/?wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema">
<jaxb:bindings node="//xs:complexType[@name='transcriptInfo']">
<jaxb:class name="TranscriptInfoByNM"/>
</jaxb:bindings>
<jaxb:bindings node="//xs:element[@name='transcriptInfo']">
<jaxb:class name="ElementTranscriptInfoByNM"/>
</jaxb:bindings>
</jaxws:bindings>