2017-02-28 162 views
0

我已经为SOAP 1.1提供了这个wsdl,一旦我尝试使用wsimport生成我的java代码,它将wsdl作为1.2处理。这subsiquentially抛出一个错误: com.sun.tools.ws.wsdl.framework.ParseException:无效的扩展元素:“香皂:身体”(在命名空间“http://schemas.xmlsoap.org/wsdl/soap/”)wsimport在SOAP 1.1中使用SOAP 1.2 wsdl

如果我改变从肥皂名称变更: xmlns:soap =“http://schemas.xmlsoap.org/wsdl/soap12/ 至 xmlns:soap =”http://schemas.xmlsoap.org/wsdl/soap/ 它生成我的代码,但我我不确定这会带来什么后果(我目前还不能连接到端点)。另外我不想破解wsdl。

是否有任何已知的wsimport错误让我们错误地将1.1 wsdl处理为1.2? (好吧,已知...我在搜索后几小时内找不到任何东西) 有没有一种解决方法,例如我可以强制wsimport使用soap 1.1? 没有编辑wsdl的任何其他解决方案?

WSDL代码在这里:

<?xml version="1.0" encoding="UTF-8"?> 
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:rpa="urn:ns:cdm:reisinformatie:data:vi:1" xmlns:tns="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1" xmlns:ns="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1" targetNamespace="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1"> 
    <wsdl:types> 
     <xsd:schema xmlns:rpa="urn:ns:cdm:reisinformatie:data:vi:1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1" targetNamespace="urn:ns:cdm:reisinformatie:message:actuelelandelijkeberichten:1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"> 
      <xsd:import schemaLocation="ri-cdm-vi-lab.xsd" namespace="urn:ns:cdm:reisinformatie:data:vi:1"/> 
      <xsd:element name="GeefActueleLandelijkeBerichtenRequestMessage" type="rpa:GeefActueleLandelijkeBerichtenRequestMessageType"/> 
      <xsd:element name="GeefActueleLandelijkeBerichtenResponseMessage" type="rpa:GeefActueleLandelijkeBerichtenResponseMessageType"/> 
      <xsd:element name="GeefActueleLandelijkeBerichtenFaultMessage" type="rpa:GeefActueleLandelijkeBerichtenFaultMessageType"/> 
     </xsd:schema> 
    </wsdl:types> 
    <wsdl:message name="GeefActueleLandelijkeBerichtenRequest"> 
     <wsdl:part name="parameter" element="tns:GeefActueleLandelijkeBerichtenRequestMessage"/> 
    </wsdl:message> 
    <wsdl:message name="GeefActueleLandelijkeBerichtenResponse"> 
     <wsdl:part name="parameter" element="tns:GeefActueleLandelijkeBerichtenResponseMessage"/> 
    </wsdl:message> 
    <wsdl:message name="GeefActueleLandelijkeBerichtenFault"> 
     <wsdl:part name="Fout" element="tns:GeefActueleLandelijkeBerichtenFaultMessage"/> 
    </wsdl:message> 
    <wsdl:portType name="ActueleLandelijkeBerichtenSoap"> 
     <wsdl:documentation>Actuele LandelijkeBerichten Soap Port</wsdl:documentation> 
     <wsdl:operation name="GeefActueleLandelijkeBerichten"> 
      <wsdl:input message="tns:GeefActueleLandelijkeBerichtenRequest"/> 
      <wsdl:output message="tns:GeefActueleLandelijkeBerichtenResponse"/> 
      <wsdl:fault name="Fout" message="tns:GeefActueleLandelijkeBerichtenFault"/> 
     </wsdl:operation> 
    </wsdl:portType> 
    <wsdl:binding name="ActueleLandelijkeBerichtenSoap" type="tns:ActueleLandelijkeBerichtenSoap"> 
     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
     <wsdl:documentation>Actuele LandelijkeBerichten Soap Binding</wsdl:documentation> 
     <wsdl:operation name="GeefActueleLandelijkeBerichten"> 
      <soap:operation soapAction="urn:GeefActueleLandelijkeBerichten"/> 
      <wsdl:input> 
       <soap:body use="literal"/> 
      </wsdl:input> 
      <wsdl:output> 
       <soap:body use="literal"/> 
      </wsdl:output> 
      <wsdl:fault name="Fout"> 
       <soap:body use="literal"/> 
      </wsdl:fault> 
     </wsdl:operation> 
    </wsdl:binding> 
    <wsdl:service name="ActueleLandelijkeBerichten"> 
     <wsdl:documentation>Actuele LandelijkeBerichten Service</wsdl:documentation> 
     <wsdl:port name="RPAActueleLandelijkeBerichtenSoap" binding="tns:ActueleLandelijkeBerichtenSoap"> 
      <soap:address location="NotDefined"/> 
      <wsdl:documentation>Reisinformatie Pull Applicatie Actuele LandelijkeBerichten Soap Service</wsdl:documentation> 
     </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

注:两个的.xsd的不包括

回答

0

权,我们决定生成CXF(工作)的代码,然后添加到传输文件。

此外,我们公司的另一个团队遇到了同样的问题,也无法找到解决方案。

所以,答案似乎是:使用CXF。