Skip to main content
Skip table of contents

SOAP-Webservices bereitstellen

Jeder SOAP Webservice wird über einen Knoten <Services/> innerhalb der Webservices-Konfiguration definiert. Dessen Attribute und Kindelemente variieren z.T. je nach Webservice-Typ.


Folgende Arten von SOAP Webservices stehen im Kindelement <Wsdl> in Attribut mode zur Auswahl:

Schematischer Aufbau einer SOAP Webservice-Konfiguration (XML-Speicherformat)

XML
<Service type="Soap">
  <SoapVersion>
    <SOAP11/> <!-- für SOAP 1.1-Unterstützung -->
    <SOAP12/> <!-- für SOAP 1.2-Unterstützung -->
  </SoapVersion>
  <Wsdl mode="WSDL-Modus"/>
  <Namespace prefix="" namespace="" schemaLocation="URL zu einem XSD-Dokument"/>
  <Operation name="Operationsname" process="Pfad zum X4-Prozess als x4db:/-URL">
    <InputHandler type="Input-Modus"/>
    <OutputHandler type="Output-Modus"/>
    <Input>
      <Part name="Bezeichnung für einen Teil" type="Typ (optional)" element="Elementname (optional)" />
    </Input>
    <Output>
      <Part name="Bezeichnung für einen Teil" type="Typ (optional)" element="Elementname (optional)" />
    </Output>
  </Operation>
</Service> 

Erläuterungen:

  • Knoten <Services type="Soap"> definiert einen HTTP-Webservice vom Typ SOAP.
  • Knoten <Wsdl> definiert über dessen Attribut mode den gewünschten WSDL-Modus (z.B. EXTERNAL, siehe oben).
  • Knoten <SOAP11/> und <SOAP12/> ermöglichen zu definieren, welche SOAP-Versionen der Webservice nutzt (entweder eine oder beide parallel).
  • In beliebig vielen Knoten <Namespace> lassen sich jeweils ein Namespace für die Definition von Webservices verwenden.
  • In beliebig vielen Knoten <Operation> lassen sich jeweils eine Operation für den Webservice definieren (siehe unten).

Folgende Namespaces werden vom System definiert:

  • xmlns:xsd=" http://www.w3.org/2001/XMLSchema "
  • xmlns:soap11=" http://schemas.xmlsoap.org/wsdl/soap/ "
  • xmlns:soap12=" http://schemas.xmlsoap.org/wsdl/soap12/ "
  • xmlns:wsdl=" http://schemas.xmlsoap.org/wsdl/ "


Request Routing für SOAP-Services

  • GET-Requests: Ein GET-Request wird beim WSDL-Modus NONE mit dem HTTP-Status 405 (Method not allowed) beantwortet. Im WSDL-Modus EXTERNAL wird mit einem HTTP redirect auf die konfigurierte WSDL-URL geantwortet. Bei den WSDL-Modi RPC und DOCUMENT generiert der X4 Server aus der Service-Konfiguration eine WSDL als Antwort.
  • POST-Requests: Bei einem POST-Request wird der komplette Request-Body in den Speicher geladen, damit das Routing auf die Operation erfolgen kann.
    1. Zunächst wird nach dem SOAP-Dokument gesucht.
      • Handelt es sich nicht um ein Multipart-Request, wird angenommen, dass der Request-Body das SOAP-Dokument enthält.
      • Handelt es sich um ein Multipart-Request (MTOM), wird nach dem Start-Part des MTOM-Pakets gesucht.
    2. Das gefundene Dokument wird als XML gelesen und die SOAP-Version aus dem Namespace des Wurzelelements ermittelt. Falls es sich dabei nicht um eine akzeptierte SOAP-Versionen handelt, wird mit einem entsprechenden SOAP-Fault geantwortet.
    3. Aus dem XML-Dokument wird der Namespace und Localname des ersten Kindelements des SOAP-Body herangezogen, um die Operation im Service zu ermitteln.

      • Bei den WSDL-Modi NONERPC und EXTERNAL wird mit dem konfigurierten Namespace und Localname der Operation verglichen. 
      • Für den WSDL-Modus DOCUMENT wird die Konfiguration des jeweils ersten Input-Parts verwendet. Wenn es sich um einenElement-Part handelt (d.h. das Attribut element enthält einen Wert) so wird der Qualifiedname des konfigurierten Elementes verwendet. Für Type-Parts (d.h. das Attribut type enthält einen Wert) wird der Name des Parts (Attribut name) verwendet.
    4. Anschließend wird gemäß Input-Modus der Request aufbereitet und an den konfigurierten Prozess für die Operation übergeben.

      Es können keine SOAP-Requests mit leerem Body-Element verarbeitet werden.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.