Frage

Ich habe eine WSDL-Datei für einen Web-Dienst auf einem System geerbt, die ich Zugang haben nicht für Entwicklung und Tests.

Ich brauche einen Web-Service zu generieren, die auf diese WSDL haftet. Der Wrapper ist .NET, aber wenn es ein einfacher Weg, dies mit einer anderen Plattform zu tun, könnten wir an, dass aussehen kann. Die Produktion Web-Service ist Java-basiert.

Was ist der beste Weg, dies zu gehen zu tun?

Hinweis: Die vererbten Wsdl scheint nicht mit kompatibel zu sein wsdl.exe , weil es entspricht nicht WS-I Basic Profile v1.1. Insbesondere die Gruppe, die sie weitergegeben erwähnte es einen anderen Standard verwendet, dass das Microsoft-Tool nicht unterstützt, aber sie haben nicht zu klären. Der Fehler wird im Zusammenhang mit einem erforderlichen Feld ‚Namen‘:

Error: Element Reference '{namespace}/:viewDocumentResponse' declared in
schema type '' from namespace ''
       - the required attribute 'name' is missing

Aus Gründen der Klarheit willen, verstehe ich, dass ich einfach eine .NET-Wrapper-Klasse aus der WSDL-Datei erstellen kann, aber das ist nicht das, was ich brauche. Es ist wie folgt:

Update:. Der ursprüngliche Web-Service wurde mit Achse erstellt

Diagramm des Systems zeigt, nicht zur Verfügung Web-Service und Mock Webservice http: // paulw.us/blog/uploads/SO-WSDL-Question2.gif

War es hilfreich?

Lösung

Wir verwenden WSCF - Web Services Contract First Tool aus Thinktecture zu tun Entwicklung Web-Service-Erstellung XSD-Schemas und dann Service-Interfaces zu erzeugen mit diesem Tool. Es kann nützlich sein, um Service-Schnittstellen von WSDL zu generieren, aber ich habe das noch nicht selbst ausprobiert.

Andere Tipps

Ja - Sie können WSCF verwenden (wie pro oben) Server-Seite Code zu generieren. Die tatsächliche URL kann dann auf die Test-URL-zu-Punkt überschrieben, die Sie verwenden möchten.

Dies ist jedoch erzeugt nur ein Stummel. Sie haben noch das tatsächliche beispiel codieren GetCustomers () -Methode, die etwas suspekt ist, weil Sie keine Ahnung, wie die tatsächliche Umsetzung funktioniert.

Dann können Sie entweder mock diese oder einen einfachen ASP-Web-Server erstellen, um sie auszuführen.

Nicht sicher, ob dies helfen wird,

, was ich getan habe, vor kurzem ist:

  • Generieren CS-Datei des WSDL-Tool oder Visual Studio mit
  • Ich habe es geändert eine Teilklasse sein
  • Ich habe eine andere partielle Klasse erstellt, in dem alle ist es eine Linie tut hinzufügen zu sagen, dass die Klasse implementiert IWhatEver
  • Ich habe eine Schnittstelle geschaffen, die die gleiche wie die generierte Proxy-Klasse ist (daher die die Proxy vollständig implementiert die Schnittstelle)

Ich habe dann einen Mockframework (Moq) in meinem Fall verwendet, die WebService zu verspotten, die ich benutzt habe dann schlecht bemannt Dependency Injection (die Mock in einen Konstruktor der Klasse unter Test bestehen) .. was verarbeiten kann eine Instanz von IWhatever

Test weg ..

Ich hoffe, das hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top