SOAP XML-Antwort erhalten, aber kein Antwortobjekt

8

Ich habe einen "Service Reference" zum Java-basierten Web-Service eines Anbieters hinzugefügt, auf den ich keine Kontrolle habe.

Ich habe diesen einfachen Client-Code:

%Vor%

Was den folgenden SOAP evelope generiert:

%Vor%

So weit, so gut, das obige habe ich von Trace Viewer bekommen. Mit SoapUI und Trace Viewer kann ich überprüfen, ob ich die richtige Antwort bekomme:

%Vor%

Aber irgendwie kommen diese Daten nicht zurück zu meinem Client-Code. Die meisten Eigenschaften innerhalb des Antwortobjekts sind NULL.

Basierend auf der SOAP-Antwort, die eine Eigenschaft des Antwortobjekts, das nicht NULL ist, ist falsch (response.version) sollte es "2.0.2" sein und nicht "1.0.0"

Weiß jemand, was ich vermisse oder was könnte hier falsch sein?

Oder was könnte mir dabei helfen, dies zu beheben?

    
capdragon 28.03.2011, 14:01
quelle

2 Antworten

5

Ich konnte mein Problem herausfinden: Es gab einen Namensraum-Mismatch.

Der Körper meiner Anfrage Seifenhülle enthielt:

%Vor%

In der Antwort, die ich erhielt (nur die wichtigsten relevanten Zeichen):

%Vor%

Beachten Sie, dass der OWS-Schema-Namespace in der REQUEST auf Ссылка

verweist

Während die Antwort auf Ссылка

zeigt

Beide Namespaces müssen für .NET identisch sein, um die Daten zu deserialisieren. Sie könnten also nur die Antwort auf den richtigen Namespace erhalten. Da ich keine Kontrolle über den Java Web Service hatte, musste ich die automatisch generierte Proxy-Klasse ändern und alle Instanzen von "xmlns: ows = http: //www.opengis.net/ows" ersetzen. für "xmlns: ows = http: //www.opengeospatial.net/ows"

    
capdragon 04.04.2011, 16:48
quelle
2

Vielleicht könnten Sie versuchen, einen Client-Proxy mithilfe von SvcUtil zu generieren, anstatt eine Service-Referenz zu verwenden . Mir ist nicht bewusst, ob sie den gleichen Client-Code erzeugen würden, aber Sie könnten es trotzdem versuchen.

%Vor%     
Mike Atlas 28.03.2011 15:05
quelle

Tags und Links