Versand von Webservice-Aufrufen aus der B2B

Übersicht

Mit dem DynamicWebserivceClient können beliebige Webservices aufgerufen werden, ohne dass entsprechender Client Code im B2B Core existieren muss (Dispatch-Client).

Der Inhalt für den Webservice-Aufruf (xml) kann, wenn er nicht dem NachrichtenInhalt der B2B entspricht, über einen Generator/Content erstellt werden.

Generator erzeugen

Der Webservice benötigt eine xml-Datei als Request. Das Schema dazu kann der wsdl entnommen werden. Diese xml-Datei kann über einen Generator erzeugt werden. Es kann dabei der fachliche Inhalt des Aufrufs (wie in der wsdl Datei) oder auch der technische Inhalt (mit SOAP envelope) erzeugt werden.

Das jar-Datei des Generators wird als Content in die B2B hochgeladen.

Einrichten der B2B-Plattform

Zu installierender Generator

Der Generator bewirkt die „Übersetzung“ der Eingangsnachricht (z.B hier eine MSCONS-Nachricht nach MIG 2.2C) in eine entsprechende Webservice-Anfrage.

Der Generator wird im Bereich „Administration“ unter dem Reiter „Content“ hochgeladen.

(Administration -> Content -> Hinzufügen)

Das Content-jar muss wie folgt installiert werden:

Eigenschaft

Wert

Provider

NLI

Version

1.0

Typ

NLC

Format

MSCONS

Format Version

2.2B

Zielformat

<beliebig, am besten sprechender Name des xml Request Typen>

Dokument

<Content-Jar des Generators>

Als Dokument ist das Content-jar zu wählen. Als Name des Zielformats wählt man passenderweise den Namen der verwendeten Request-Struktur aus dem WSDL.

Falls verschiedene Nachrichten-Versionen verarbeitet werden sollen, muss für jede Version ein solcher Content-Eintrag angelegt werden.

Einrichten des Service

Der Service dient dazu, die Webservice-Anfrage auf dem entfernten System durchzuführen.

Der Service wird im Bereich „Administration“ unter dem Reiter „Service“ angelegt.

(Administration -> Services -> Hinzufügen)

Der Service muss wie folgt angelegt werden

Eigenschaft

Wert

Beschreibung

ID

SOAPCLIENT

ID des Service

Name

Dynamic Webservice Client

(Beliebiger Text)

Name, der im Monitor angezeigt wird

Typ

WEBSERVICE

Klasse

org.b2bbp.webservices.DynamicWebServiceClient

Channel

<leer>

Richtung

Business Partner nach Engine

Status

STP

Erstellt von:

NLI

Optionen

<leer>

Der hinzugefügte Service wird ohne Eigenschaften konfiguriert.

Hinweis zum Service

Für Entwicklungszwecke, und falls der aufgerufene Webservice es erlaubt, den gleichen Aufruf mehrfach einzusenden, kann das Attribut B3P_SKIPABLE auf false gesetzt werden. Dann wird bei jedem Neustart der Nachricht der Aufruf erneut durchgeführt, auch wenn er vorher erfolgreich war.

Action erstellen

Die Action sorgt dafür, dass die Nachricht in eine Anfrage an den Webservice umgewandelt wird, und der externe Webservice durch den Webservice-Client aufgerufen wird.

Die Action wird unter Administration -> Actions -> Hinzufügen angelegt.

Eigenschaft

Wert

Beschreibung

ID

numerischer Text, vergeben durch das System

Interne ID, Vorgabewert übernehmen

Name

<sprechender Name, am besten entsprechend dem SOAP Service Namen, bzw. der SOAPAction>

Beliebiger Name

Klasse

com.b2bbp.runtime.actions.nlc.NLCAction2

Typ

Java

Version

1.0

Beschreibung

<sinnvolle fachliche Beschreibung>

Die Action muss mit folgenden Attributen versehen werden:

Eigenschaft

Inhalt

Beschreibung

B3P_USED_SERVICE_ID

SOAPCLIENT

ID des oben definierten Service

HTTP_URL

<URL>

URL des Webservice, ohne wsdl

content-nlc-provider

NLI

Gleich zum oben definierten Generator Content "Provider"

content-nlc-out

<String>

Gleich zum oben definierten Generator Content "Zielformat"

content-nlc-version

1.0

Gleich zum oben definierten Generator Content "Version"

B3P_USE_REGISTRY

true

Immer auf true setzen.

B3P_SOAP_SERVICE_NAME

<Namespace, localName>

QName des Service aus der wsdl-Datei im Format URI,localPart (targetNamespace +"," + name-Attribute des portType-Elements in der wsdl

B3P_SOAP_PORT_NAME

<Name des Ports>, wenn ein bestimmter Port verwendet werden soll. Optional

targetNamespace der wsdl + "," + name-Attribut des port-Elements in der wsdl. Falls kein Port mit dem angegebenen Namen verfügbar ist, wird er erzeugt.

B3P_SOAP_ACTION

<Name der SoapAction>, nur notwendig bei .NET-Services. Sonst Optional

targetNamespace der wsdl + "/" + name-Attribut des operation-Elements in der wsdl

Alle Attribute bekommen ein Häkchen bei „Zur Laufzeit überschreiben“ und „technisch“.

Konfigurationen Global Properties

LOG_LEVEL

Global Property: org.b2bbp.webservices.DynamicWebServiceClient.LOG_LEVEL

Wird dieses optionale Property auf den Wert 1 gesetzt, so werden die abgesetzten HTTP Aufrufe im MessageContext aufgezeichnet.

Einrichten der Action auf einem Channel

Die neu definierte Action muss auf einem geeignete Channel eingebaut werden.

Nicht-SOAP-Webservices

Auch einfache HTTP-Post-Requests ohne SOAP können vom Service ausgeführt werden. Dafür dürfen im Message Context die Variablen B3P_SOAP_SERVICE_NAME und B3P_SOAP_ACTION nicht vorkommen.

Fehlerbehandlung

Logging ausgaben finden sich im Attribut STACK_TRACE des MessageContext. Durch setzen des Log-Levels (siehe GlobalProperties) können Request und Response im Rohformat geloggt werden.

View Me   Edit Me