2016-07-07 13 views
0

Ich habe gerade den WSo2 Service Bus installiert, um meine eigene serviceorientierte Architektur (SOA) zu erstellen.Ändert WSO2 meine WSDL-Datei?

Ich versuche, ein Ignition (MES/SCADA) -System mit einem Webservice auf einem anderen (eingebetteten) Computer zu verbinden. Ich habe den Dienst in der Management-Konsole gemacht, wenn ich die Tryit-Funktion verwende, kann ich das Formular ausfüllen, aber wenn ich die Nachricht sende, bekomme ich die folgende Fehlermeldung:

"Die Endpunkt-Referenz (EPR) Für die Operation nicht gefunden ist /services/CalculatorWS.CalculatorWSHttpSoap12Endpoint und die WSA-Aktion = null. Wenn diese EPR zuvor erreichbar war, wenden Sie sich bitte an den Serveradministrator. "

Wenn ich versuche, dasselbe in meinem Ignition-Programm zu tun, erhalte ich den folgenden Fehler: unbekannter URL-Typ: "rechnerws"? Xsd = http.

Ich denke, das hat mit der SOAP-Nachricht zu tun, weil ich die von meinem Webservice mit der von WSO2 erzeugten verglichen habe. WSO2 missgenerates die folgende Zeile in der WSDL: schema = "CalculatorWS xsd = http://169.254.166.123:8080/CalculatorApp/CalculatorWSService?xsd=1?" ich denke, das sollte: schema = "http://169.254.166.123:8080/CalculatorApp/CalculatorWSService?xsd=1"

ist dies die richtige Schlussfolgerung? Wenn ja, wie kann ich es anpassen?

Außerdem, wenn ich den SOAP Messagetracer von WSO2 verwende, bekomme ich die Antwort, die ich zurück will! wie ist das möglich?

Ich möchte von Ihnen hören, Vielen Dank im Voraus, T Dantuma

+0

Hallo Dantuma, haben WSO2 nichts geändert, die WSDL-Erzeugungs brach könnte. Es sollte also etwas mit den Konfigurationen nicht stimmen. Könntest du mir bitte folgendes mitteilen? - ESB-Version, die Sie verwenden - Ihre Synapse konfiguriert in der Quellansicht des Servicebusabschnitts. – Charitha

+0

Hallo Charitha, danke für deine Antwort. Die Version meiner ESB ist: 4.9.0 ' ' Es tut mir leid, ich kann nicht die ganze Datei in diesen Kommentar (zu viele Zeichen), so dass ich nur die wichtigsten Teile davon zeigen. –

+0

Ich habe herausgefunden, dass diese Zeile: '' verursacht, um die folgende Zeile in der WSDL-Datei zu erstellen (die der ESB macht) : '' Weiß jemand wie ich diese letzte Zeile anpassen kann? –

Antwort

0

Nach der Konfiguration, es sieht aus wie Sie WSDL-basierten Proxy implementieren werden. Dann müssen Sie keine veröffentlichte WSDL-URL angeben. Versuchen über die Linie von Proxy zu entfernen, wie Sie erwähnten:

<xsd:import namespace="http://calculator.me.org/" schemaLocation="CalculatorWS?xsd=http://169.254.166.123:8080/CalculatorApp/Calcu‌​latorWSService?xsd=1"/> 

ESB wird xsd mit entsprechendem Namensraum wird, indem

  • , wenn Sie externe Namespace definieren für bestimmte Eigenschaft
  • Sie externe Namespace hinzugefügt für Service in Ihrem Service und ESB kann Ihre Komponente nicht identifizieren. Dann wird der Namespace verwendet, um Verwirrungen zu lösen.

Versuchen Sie oben Methoden. Wenn Sie den genauen Fehler nicht identifizieren können, fügen Sie bitte die gesamte Konfiguration in Ihre Frage ein (Bearbeiten und setzen Sie die Konfiguration).

Wenn Sie weiterhin die Fehlermeldung erhalten:

  • Bitte melden Sie sich an WSDL in und prüfen, ob es

http://169.254.166.123:8080/CalculatorApp/CalculatorWSService?wsdl

  • Ihr Aufruf Methode Überprüfen zugänglich sein kann. Becuase "POST" oder "GET" Anfrage kann spezielle Aufrufe benötigen.(Ex: alle erforderlichen Parameter für den Aufruf oder korrekte URL können unterschiedlich mit genauer Methode)

[1] https://docs.wso2.com/display/ESB490/WSDL+Based+Proxy+Template