SAP NetWeaver Cloud Development – Web Service Integration mit JAX-WS
Dies ist ein Gastbeitrag von Christian Wiegleb, SAP Consultant bei der mindsquare AG.
Ziel
Dieser Artikel beschreibt, wie ein Web Service mit Hilfe von JAX-WS von einer SAP NetWeaver Cloud Application über ein Servlet konsumiert werden kann. Der Beitrag setze dabei auf das SAP NetWeaver Cloud SDK auf und zeigt prototypisch das Potential der Entwicklungs-Infrastruktur. Außerdem wird dadurch eine Art der Kommunikation aufgezeigt, welche – meiner Meinung nach – das SDK leider nicht als “Example” bietet.
Exkurs SAP NetWeaver Cloud
Sofern noch keine Erfahrungen mit Cloud Development gesammelt werden konnten, hier noch ein kurzer Abschnitt was die SAP AG darunter versteht:
Mit SAP NetWeaver Cloud hat die SAP AG eine Plattform schaffen wollen(PaaS), die es Kunden und Partner ermöglicht Applikationen auf Java-Basis zu entwickeln und diese in der Cloud zu veröffentlichen bzw. zu verwenden.
Die SAP AG bezeichnet SAP NetWeaver Cloud selber als Development Kit, welches auf aktuellen Industrie-Cloud-Standards beruht und Eclipse-basiert ist. Die Plattform unterstützt dabei den kompletten Lebenszyklus über Entwicklung bis hin zur Verteilung der Software.
Vorteile für Kunden
Für Kunden ergeben sich aus meiner Sicht die Vorteile, dass durch eine voll funktionsfähige Infrastruktur und standardisierte Schnittstellen zu Backend-Systemen (durch SAP NetWeaver Cloud SDK) die Möglichkeit geschaffen wird, effizient Applikationen entwickeln zu lassen und die administrativen Kosten niedrig zu halten.
Vorbedingungen
Für die Entwicklung der Hello Cloud Application müssen noch folgende Schritte vorher ausgeführt werden:
- Zunächst wird ein SAP SCN Account bzw. Developer Account benötigt, um Applikation zu deployen bzw. zu administrieren.
Signing up for an Account - Für die Entwicklung der Applikation müssen anschließend alle relevanten Tools heruntergeladen und konfiguriert werden.
Setting Up the Tools and SDK
Entwicklung der Applikation
Und nun kann auch schon die Entwicklung der Hello Cloud Application beginnen. Insgesamt sind nur sieben Schritte notwendig, um mit Hilfe der bereitgestellten Tools einen Web Service innerhalb einer Cloud Application zu konsumieren.
- Anlegen eines dynamischen Web Projektes
Zunächst wird ein dynamisches Web Projekt mit den cloud-spezifischen Einstellungen in Eclipse angelegt, sodass alle wesentlichen Libraries dem Classpath / Buildpath hinzugefügt und Ordnerstrukturen angelegt werden. - Auswahl eines geeigneten Web Services (JAX-WS kompatibel)
Anschließend wird ein JAX-WS kompatibler Web Service gesucht, welcher vom Servlet konsumiert werden kann. In unserem Fall soll zu einer IP-Adresse das Land sowie der Ländercode ermittelt werden.WSDL - Mit Hilfe von wsimport JAX-WS Artefakte generieren
Mit Hilfe des Programms wsimport werden daraufhin zu dieser WSDL-Datei alle relevanten Java-Artefakte generiert, sodass objektorientiert auf den Service zugegriffen werden kann. Es ist dabei zu beachten, dass der Classpath korrekt gesetzt wird und die generierten Dateien im src-Verzeichnis des dynamischen Web Projektes abgelegt werden.WSIMPORT HowTO - Servlet anlegen
Jetzt wechseln wir wieder in Eclipse und legen ein Servlet an. - Service konsumieren (JAX-WS-Artefakte im Servlet einbinden)
Die generierten Java-Artefakte bzw. der Web Service kann nun, wie im folgenden Listing dargestellt, konsumiert werden. - Deploy der Anwendung
Im Anschluss daran wird das dynamische Web Projekt deployed. In Eclipse öffnet sich automatisch der integrierten Browser und zeigt das gewünschte Ergebnis oder den typischen Java-Fehlerstack an. - Login in Cloud
Über den Cloud-Account kann anschließend die Applikation verwaltet sowie konfiguriert werden.SAP NetWeaver (Trial) Cloud AccountHello Cloud Application (Geo IP Service)