Extension EAI_WS_CONFIG
Die Konfiguration eines SOAP-Endpoints in der B2B erfolgt vollständig in der Extension EAI_WS_CONFIG
.
In der Extension können mehrere Endpoints konfiguriert werden. Die Konfiguration erfolgt deshalb immer mit einem Prefix für den Endpoint in der Form {EndpointName}_{PropertyName}={PropertyValue}.
Aktive Endpoints müssen am Anfang der Extension unter dem Key ENDPOINTS angegeben werden. Mehrere Endpoints müssen mit Semikolon getrennt werden.
Folgende Konfigurations-Möglichkeiten stehen zur Verfügung:
PropertyName | Beschreibung | Werte |
---|---|---|
INBOUND_URL | Die URL für den eingehenden SOAP-Webservice. Die URL bezieht sich immer auf die Basis-URL {Server}/b2bbp-engine/ws. | Beispiel: /INBOUND_ENDPOINT1 - Der Webservice ist dann über die URL {Server}/b2bbp-engine/ws/INBOUND_ENDPOINT1 ansprechbar. |
INBOUND_SOAP_VERSION | Mit dieser Property kann die erwartete SOAP-Version der konfiguriert werden, je nachdem ob eine Nachricht in der SOAP-Version 1.1 oder 1.2 erwartet wird | SOAP11 / SOAP12 |
INBOUND_AUTHENTICATION_TYPE | Dieser Wert beschreibt die Konfiguration einer Authentifizierungsmethode zum Aufrufen des Webservices. | NONE(default)/BASIC_AUTHENTICATION / WSSE_UsernameToken_Profile_1_1 |
INBOUND_AUTHENTICATION_USER | Falls eine Authentifizierungsmethode gewählt wurde wird mit dieser Property der Benutzername gesetzt | |
INBOUND_AUTHENTICATION_PASSWORD | Falls eine Authentifizierungsmethode gewählt wurde wird mit dieser Property der Benutzername gesetzt | |
INBOUND_WSSE_USERNAMETOKEN_PASSWORD_TYPE | Falls WSSE als Authentifizierungsmethode gewählt wurde kann hier der Passworttyp näher spezifiziert werden. | TEXT (default) / DIGEST |
INBOUND_ASYNC_RETURN_SERVICE_ID | Mit dieser optionalen Property kann im Falle eines asynchronen Aufrufs der zu verwendende Service für die Rückantwort konfiguriert werden. Die Property wird nur dann herangezogen, wenn im Messagecontext der Nachricht der Wert EAI_RETURN_SERVICE_ID fehlt. Dieser Mechanismus kommt in der AsyncWebserviceReturnAction zum Einsatz | |
INBOUND_USE_CD | Boolean-Wert, ob eine bei der Verarbeitung der Nachricht ChannelDistributions ausgeführt werden sollen. | true/false(default) |
INBOUND_CREATE_FORMAT_OBJECT | Bei der Verarbeitung eines SOAP-Aufrufs wird in der Regel kein Format-Objekt benötigt, deswegen wird standardmäßig kein Format-Objekt angelegt. Wird bei der weiteren Verarbeitung von anderen Actions oder Services die Existenz eines Format-Objekts vorausgesetzt, so kann ein leeres Format-Objekt mit Hilfe dieser Property erzeugt werden. | true/false(default) |
INBOUND_THROW_ERROR_FROM_CHANNEL_FACTORY | Boolean-Wert, ob im Falle eines Fehlers während der Nachrichtenverarbeitung es noch eine Rückmeldung an den Aufrufer (mit einer Fehlermeldung) geben soll (default). Wird diese Property auf true gesetzt, kommt es zu keiner Rückmeldung. | true/false(default) |
INBOUND_SOAP_PAYLOAD_KEY | Hier kann ein Schlüssel angegeben werden, unter dem der reine Payload eines SOAP-Requests, ohne die einrahmende SOAP-Nachricht im Messagecontext abgelegt wird. Zusätzlich wird dann unter diesem Schlüssel mit dem Suffix _OBJECT die aufgerufene SOAP-Methode im MessageContext abgelegt | |
INBOUND_SUPPRESS_MUST_UNDERSTAND_HEADERS | Boolean-Wert, ob für diesen Endpoint die Überprüfung für MustUnderstand Headers unterdrückt werden soll | true/false(default) |
Service
Zusätzlich zu der Konfiguration in der EAI_WS_CONFIG muss ein neuer Service angelegt werden.
Die ID des Services muss der in der EAI_WS_CONFIG angegebenen Endpointnamen entsprechen. Der Name ist frei wählbar, der Typ ist WS. Ein Klassenname wird nicht angegeben.
Es muss ein Channel ausgewählt werden, in dem die Verarbeitung erfolgen soll.
Die Option Startup hat keinen Einfluss. Jeder SOAP-Service, der in der EAI_WS_CONFIG konfiguriert ist, steht in der B2B grundsätzlich zur Verfügung.
Request-Header
Wenn der SOAP Request Header-Informationen enthält, dann werden diese automatisch in den MessageContext mit dem Präfix INCOMING_HEADER_ geschrieben. Hätte der SOAP-Request zum Beispiel den Header Content-Type, so könnte dieser Header in der Verarbeitung über den folgenden Template-Ausdruck ausgelesen werden:
${template(&(this.INCOMING_HEADER_Content-Type))}