HowTo ·Serie ·Tipps&Tricks

Webservice mit SAP AS JAVA – Teil 2

Teil 2 – Webservice Development Top Down

Dev_TopDown2


Inhalt

  1. Webservice Development Top Down
    1. Build WSDL
      1. Build WSDL in NWDS
        1. Erstellen eines XSD Schemas
        2. Erstellen der WSDL mit einem XSD Schema
        3. Java Skeleton generieren
      2. Build WSDL in ESR
        1. Java Skeleton generieren
    2. EJB Implementierung
      1. Service Implementierung
      2. Java Annotations für SAP AS JAVA

Webservice Development Top Down

Im Folgenden wird beschrieben wie eine WSDL im NWDS erstellt werden kann. Und wie anhand einer WSDL ein JAVA Skeleton aus dem NWDS heraus generiert wird.


Build WSDL

Bevor wir die Proxy Strukturen für den Webservice generieren können benötigen wir eine WSDL Datei welche die Methoden und deren Schnittstellen definiert.


Build WSDL in NWDS

In diesem Beispiel erstellen wir im NWDS mit den eingebauten Designtools die XSD Schema Typen und erstellen daraus die WSDL Datei.

Java_EE_Perspektive
Java – Java EE Perspektive

Wechseln Sie in die Java EE Perspektive.

Java_EE_Projekt
Java – XML Ordner anlegen

Erstellen Sie im EJB Projekt einen Ordner XML.


Erstellen eines XSD Schemas

New_XSD
XSD – XSD Schema anlegen

Erstellen Sie ein XSD Schema im Ordner XML.

XSD_2
XSD – Wizzard XSD anlegen
XSD_3
XSD – XSD Design View
XSD_4
XSD – XSD Eigenschaften einblenden

Blenden Sie den Eigenschaften Tab der XSD ein.

XSD_5
XSD – XSD Eigenschaften

Definieren Sie den Namensraum der XSD.

XSD_6
XSD – komplexen Datentypen hinzufügen

Fügen Sie der XSD einen komplexen Datentypen hinzu.

XSD_7
XSD – XSD Datentyp anzeigen

Doppelklicken Sie auf den Datentyp.

XSD_8
XSD – Datentyp bearbeiten

Fügen Sie als Attribut die ID der Nachricht dem Datentypen hinzu.
Wählen setzen Sie den Typ des Attributes ID auf Int (integer).

XSD_9
XSD – Datentyp Eigenschaften
XSD_10
XSD – Datentyp Element hinzufügen

Fügen Sie ein Element hinzu. Hier z.B. die Message vom Typ String.

XSD_11
XSD – fertiger Datentyp

Das fertige XSD Schema sollte jetzt so aussehen.


Erstellen der WSDL mit einem XSD Schema

Erstellen Sie im ordner xml eine WSDL Datei.

New_WSDL
WSDL – Datei erstellen

Klicken Sie auf NEXT.

WSDL_2
WSDL – Name

Vergeben Sie einen passenden Namen.
Klicken Sie anschließend auf NEXT.

WSDL_3
WSDL – Namespace definieren

Passen Sie den Namespace an und klicken Sie auf FINISH.

WSDL_4
WSDL – Design View

Öffnen Sie die Eigenschaften der Operation.

WSDL_5
WSDL – Eigenschaften der Operation

Vergeben Sie einen Passenden Namen für die Operation der WSDL.

WSDL_6
WSDL – Methodenparameter Typisieren

Ändern Sie den Typ des Elementes GetMessageOfTheDay auf Integer.

WSDL_7
WSDL – Response Typ referenzieren

Ändern Sie den Typ der Response auf den XSD Schema Typen „MessageofTheDay“.

WSDL_8
WSDL – Responsetype Browser

Wählen Sie die Eigenschaft Enclosing Project, damit auch Typen aus Ihrem Projekt zur Auswahl angeboten werden.
Wählen Sie den Typen MessageOfTheDay und bestätigen Sie mit OK.
Die WSDL Sollte nun wie folgt aussehen:

WSDL_9
WSDL – fertig

Passen Sie die Parameternamen an. (Request, Response)

Der Port mit der Adresse http://www.example.org ist ein Endpunkt an dem dieser Service erreicht werden kann. Ein Solcher Endpunkt existiert jedoch noch nicht und ist nur für Service Clients interessant.
Wie mit Java ein Webservice Client erstellt wird gibt es in zahlreichen Tutorials erklärt. Wir konzentrieren uns auf die Bereitstellung eines Webservices auf dem SAP AS Java.

Ignorieren Sie daher die falsche Adresse im Port!


Java Skeleton generieren

Generate_Java_Skeleton
WSDL – Java Skeleton generieren

Mit einem Rechtsklick auf die WSDL öffnen Sie das Kontextmenü und wählen Web Services und dann Generate Java Bean Skeleton.

Generate_Java_Skeleton_2
WSDL – Java Skeleton generieren Wizard

Achten Sie darauf das Top down Java bean Web Service als Web service type ausgewählt ist. Die Konfiguration sollte auf SAP Server mit der SAP NetWeaver Runtime stehen sowie Ihre EJB und EAR Projekte enthalten.

Stellen Sie den Regler auf Develop service herunter.

Klicken Sie auf NEXT.

Generate_Java_Skeleton_3
WSDL – Java Skeleton generieren Wizard 2

Wählen Sie „Resolve Collisions Automatically“.

Bestätigen Sie mit Finish.

Im Paket ejbModule finden Sie anschließend alle generierten Klassen.

Generate_Java_Skeleton_4


Build WSDL in ESR

Wenn Sie über eine Anbindung zu einem SAP Enterprise Repository verfügen. Können Sie auch ein Interface im ESR erstellen und darüber das JavaBean Skeleton generieren.


Java Skeleton generieren

Generate_Java_Skeleton_5
ESR – Java Skeleton generieren

Über den Enterprise Service Browser kann über die Verbindung zum ESR ein Interface gesucht werden.
Über das Kontextmenü steht die Generate JavaBean Skeleton Funktion ebenfalls zur Verfügung.


EJB Implementierung

Wir benötigen die Session Beans damit der Service auf dem AS Java ausgeführt werden kann. Über die Session Beans wird ein Interface für den Zugriff von außen bereitgestellt.

EJB_Implementierung_4
EJB – Session Beans anlegen
EJB_Implementierung_5
EJB – Session Bean Konfiguration

Geben Sie das Java Package an sowie einen Sprechenden Klassennamen.
Klicken Sie anschließend auf FINISH!

Es wurden jetzt ein Interface und eine Klasse zur Implementierung hinzugefügt.

EJB_Implementierung_6
EJB – Session Bean Local

 

EJB_Implementierung_7
EJB – Session Bean Local Interface

MessageOfTheDayBeanLocal.java

Definieren sie eine Methode im der BeanLocal.

EJB_Implementierung_8
EJB – Generate Session Bean Local Interface Method

Implementieren Sie die Klasse wie folgt.

EJB_Implementierung_9
EJB – Session Bean Local Implementierung

MessageOfTheDayBean.java


Service Implementierung

Beschreibung …


Java Annotations für SAP AS Java

Service_Implementierung
Java – Service Implementierung

Ändern Sie die Annotations für Server und Port entsprechend Ihrer Serverkonfiguration.

Service_Implementierung_2
Java – Service Implementierung

MessageOfTheDayImplBean.java

Abschließend müssen wir das Projekt noch deployen. SieheTeil 3 – Service Deployen!

Die WSDL mit Endpunkt ist jetzt unter http://Server:Port/MessageOfTheDay?wsdl abrufbar.


Weiter mit -Teil 3 – Webservice Deployment

Schreibe einen Kommentar