Ansteuerung WebService via WSDL

36 views
Skip to first unread message

thorstenvogel

unread,
Aug 23, 2012, 12:00:35 PM8/23/12
to extra-s...@googlegroups.com
Hallo,

ich habe die beiligende WSDL Datei vorliegen, mit dieser können jedoch nur Nachrichten vom Typ TransportRequestType versendet werden. Gibt es für jedes Standard-Kommando eine eigene WSDL?

Viele Grüße,
Thorsten Vogel
extra.wsdl

Dr. Lofi Dewanto

unread,
Aug 30, 2012, 8:59:49 AM8/30/12
to extra-s...@googlegroups.com
Hi Florian,

ich habe die Sache genauer angeschaut. Das Problem liegt es daran, dass die restlichen Messages nicht vom bspw. Typ TransportRequestType ableitet. Dies bedeutet folgenden:

=> Ich kann in mein Java-Code (generiert aus WSDL) das Message nicht reingeben, da das Message nicht vom Typ  TransportRequestType ableitet. Der Typ ist nicht kompatibel.

Können wir kurz telefonieren?

Viele Grüße,
Lofi.

Florian Stratil

unread,
Sep 3, 2012, 2:25:50 AM9/3/12
to extra-s...@googlegroups.com
Hallo

Die Frage mit dem fehlenden Root-Element habe ich nochmal weitergegeben. Da warte ich noch auf eine Antwort.

Zum Thema Messages:

Kann es sein, dass die Messages nicht drin sind, weil unterhalb des Bodys dann irgendwann anyXML kommt?
Kann mich dran erinnern, dass wir da schonmal Probleme hatten, dass der Inhalt teilweise falsch war, weil der Parser nur bis zu dem Element geparst hat und dann aufgehört hat.

Ich denke aus dem selben Grund auch, dass wir eigentlich nur eine WSDL brauchen. Vom Aufbau her ist es ja gleich, ob es sich dabei um eine Anfrage nach Ergebnissen, Bestätigungen oder das Senden von Daten handelt.Die fachliche Unterscheidung findet ja schon im Header des eXTra-Requests an Hand von Procedure und DataType statt.

Florian Stratil

unread,
Sep 5, 2012, 1:39:57 AM9/5/12
to extra-s...@googlegroups.com
Ich habe jetzt das Feedback von einem der anderen Entwickler, die den Server erstellt haben.

Nach seiner Einschätzung teilt er meine Ansicht, dass die Elemente des Messages-Komplexes nicht mit in der WSDL verdrahtet sind, da es sich ja ein getrenntes System handelt. Das eine ist das eXTra-Transport, welches die WSDL ja abbildet, das andere die eXTra Standardnachrichten, die optional sind.

Zum Thema WSDL und Root-Element habe ich folgende Antwort bekommen:


Bei der angehängten WSDL wird zwar ein "Transport" Element definiert, das allerdings nicht "Transport", sondern "in" heißt. Außerdem wird noch ein zusätzliches "execute" Element entsprechend der WSDL-Operation definiert, das den Transport-Request kapselt.

Bei SPoC haben wir das erst mal "straight-forward" gemacht, so dass innerhalb des SOAP-Bodys direkt das "Transport"-Element steht:

<soapenv:Body>
  <Transport profile="http://www.extra-standard.de/profile/DEUEV/1.3" version="1.3">
    <TransportHeader>
      ...

Die Kapselung in das zusätzliche "execute" Element haben wir weggelassen, weil es bei einem eXTra-Request sowieso immer ein eindeutiges Root-Element gibt, so wie es in der WS-I Spezifikation vorgeschrieben ist. Das zusätzliche Element wird bei document/literal Webservices z.B. dann verwendet, wenn es mehrere Root Elemente gibt (nennt sich dann "document wrapped"). Bei uns ist deshalb das "Transport" Element auch einfach das Root-Element.

Ich hoffe mal, dass das ein bisschen weiterhilft.

Gruß

Florian
 

extra.wsdl

Leonid Potap

unread,
Sep 19, 2012, 10:43:30 AM9/19/12
to extra-s...@googlegroups.com
Hallo Florian,

mit diesem WSDL können wir die Service umsetzen. Einzige Stelle die wir anpassen mussten:

statt:
        <wsdl:part element="extraresponse:TransportResponse" name="response" />
angepasst auf:
        <wsdl:part element="extraresponse:Transport" name="response" />

Gibt es Protokoländerungen?

Viele Grüße

Leonid



      






Am Donnerstag, 23. August 2012 18:00:35 UTC+2 schrieb thorstenvogel:
Reply all
Reply to author
Forward
0 new messages