2016-04-26 3 views
2

Ich versuche, einen SOAP-Dienst zu veröffentlichen, der in der Governance-Registrierung über einen Proxy in WSO2 ESB registriert ist. Ich erhalte einen Fehler beim Speichern des Proxys aufgrund eines falschen Schemapfad der Ressourcen, auf die in der WSDL verwiesen wird.WSO2 ESB Proxy, der Registrierungsressource verwendet, hat ungültige Schemareferenzen

Insbesondere erhalte ich:

Caused by: javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=PARSER_ERROR: Problem parsing '../../../../schemas/org/tempuri/1.0.0/TestSoap1.xsd'.: java.io.FileNotFoundException: /../schemas/org/tempuri/1.0.0/TestSoap1.xsd (No such file or directory) 

Wenn ich die WSDL in der Governance Registry zu suchen hat das importierte Schema einen Ort in einen relativen Pfad zeigen“../../../{xsd Namen } ", offensichtlich die Ursache des Fehlers. Die Lösung scheint zu sein, alle Schemapositionen den internen Schlüsseln der Registrierung zuzuordnen (aka gov:/trunk/... und so weiter).

Dieses Verhalten macht für mich keinen Sinn. Die Integration zwischen ESB und GREG sollte nützlich sein, um zuvor GREG importierte WSDL beim Erstellen von Proxies zu verwenden. Fehle ich etwas?

Antwort

0

Wenn Sie eine Registrierungsressource mit Abhängigkeiten auswählen, müssen Sie diese innerhalb des von Ihnen erstellten Proxy-Service angeben. Im folgenden Beispiel zeige ich Ihnen die Konfiguration, die Sie in einem Proxy ausführen müssen, der auf einer WSDL mit einer XSD als Abhängigkeit basiert, und beide sind in GREG registriert.

<publishWSDL key="gov:/trunk/wsdls/org/example/www/util/auditoria/1.0.0/Auditoria.wsdl"> 
     <resource key="gov:/trunk/schemas/org/example/www/util/auditoria/1.0.0/Auditoria.xsd" 
       location="../../../../../../../schemas/org/example/www/util/auditoria/1.0.0/Auditoria.xsd"/> 
    </publishWSDL>