2017-02-28 3 views
0

Ich habe diese WSDL für eine SOAP 1.1 geliefert, sobald ich versuche, meinen Java-Code mit wsimport zu generieren, behandelt es die WSDL als 1.2. Welche subsiquentially wirft ein Fehler: com.sun.tools.ws.wsdl.framework.ParseException: ungültiges Tockelement: "soap: body" (im Namensraum "http://schemas.xmlsoap.org/wsdl/soap/")wsimport verwendet SOAP 1.2 für SOAP 1.1 wsdl

Wenn ich die Seife Namensänderung ändern von: xmlns: "http://schemas.xmlsoap.org/wsdl/soap12/ zu xmlns: soap =" http://schemas.xmlsoap.org/wsdl/soap/ Es generiert meinen Code, aber ich bin mir nicht sicher, welche anderen Konsequenzen das hat (ich kann mich zu diesem Zeitpunkt noch nicht mit dem Endpunkt verbinden). Außerdem möchte ich die WSDL nicht hacken.

Gibt es einen bekannten Fehler in wsimport, der uns eine 1.1 wsdl als 1.2 falsch behandelt? (naja, bekannt ... ich kann nach stundenlanger Suche nichts finden) Gibt es da eine Arbeit wo ich zum Beispiel wsimport zwingen kann Seife 1.1 zu benutzen? Jede andere Lösung ohne die WSDL zu bearbeiten?

Wsdl Code hier:

<?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> 

Anmerkung: zwei XSD ist nicht im Preis enthalten

Antwort

0

Rechts, haben wir beschlossen, den Code mit CXF (das funktioniert) zu erzeugen und dann die Datei auf die Lieferung hinzufügen .

Auch ein anderes Team in unserer Firma stieß auf dasselbe Problem und konnte auch keine Lösung finden.

So scheint die Antwort zu sein: Verwenden Sie CXF.

Verwandte Themen