EGL-Unterstützung für Zugriff auf SOAP-Header

Für den Zugriff auf SOAP-Header stehen verschiedene Funktionen zur Verfügung. Einzelheiten bezüglich des Zugriffs auf HTTP-Header finden Sie in den ersten vier Referenzabschnitten, die am Ende dieses Themas aufgeführt sind.

Die SOAP-Header sind nur für EGL-generierte, Java-basierte SOAP-Services und EGL-generierte, Java- bzw. JavaScript-basierte SOAP-Serviceanforderer verfügbar.

Betrachten wir zum Anzeigen des Verarbeitungsablaufs ein Beispiel, in dem die SOAP-Header durch den folgenden Datensatzabschnitt dargestellt werden:
Record SOAPHeader
   field1 string{@xmlelement{namespace = "http://services";}};
   field2 string{@xmlelement{namespace = "http://services";}};
end

Es ist erforderlich, dass der Datensatzabschnitt nicht strukturiert ist, und jedes Feld muss einen Namensbereich angeben.

Im Folgenden ist der Service-Code aufgeführt:
service SayHello
   function hello()
      getSOAPRequestHeaders(header);
      //...
      header SOAPHeader{field1="valueA", field2="valueB"};
      ServiceLib.setSOAPResponseHeaders(header);
   end
end

Die Funktion hello ruft die SOAP-Anforderungsheader für einen Datensatz des oben genannten Typs ab, ordnet diesem Datensatz Werte zu und definiert den SOAP-Antwortheader mit den angeforderten Werten.

Im Folgenden ist der Code des Anforderers aufgeführt:
srvc SayHello{@BindService {}};
header SOAPHeader{field1="value1", field2="value2"};
ServiceLib.setSOAPRequestHeaders(srvc, header);
response string = srvc.hello("ABC");
ServiceLib.getSOAPResponseHeaders(srvc, header);

Der Anforderer deklariert eine Servicezugriffsvariable, ordnet einem Datensatz des oben genannten Typs Werte zu, definiert den SOAP-Anforderungsheader mit diesen Werten, ruft den Service auf und ruft die Antwortheader für einen Datensatz des oben genannten Typs ab.

Anmerkung: Der EGL-generierte SOAP-Service oder SOAP-Serviceanforderer muss auf JAX-WS basieren (nicht auf JAX-RPC).


Feedback