WebService in Java SE und EE



Ähnliche Dokumente
Auszug aus JAX-WS Folien

Themen. Web Service - Clients. Kommunikation zw. Web Services

Der lokale und verteilte Fall

Installations Guide für YAJSW und DTLDAP

Programmieren in Java

LANiS Mailversender ( Version 1.2 September 2006)

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

teamsync Kurzanleitung

Netzwerkversion PVG.view

Java: Vererbung. Teil 3: super()

Anleitung über den Umgang mit Schildern

Vertiefte Grundlagen Graphentheorie

Online Bestellsystem Bedienungsanleitung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Übungen zu Softwaretechnik

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Anleitung zur Webservice Entwicklung unter Eclipse

Einführung in die Programmierung

Print2CAD 2017, 8th Generation. Netzwerkversionen

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Informationen zum neuen Studmail häufige Fragen

How-to: Webserver NAT. Securepoint Security System Version 2007nx

GrafStat WIE FÜHRE ICH ONLINE-UMRAGEN DURCH?

Übung - Konfigurieren einer Windows 7-Firewall

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Erfolgsmeldungen im Praxisbetrieb

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Updatehinweise für die Version forma 5.5.5

Einführungskurs MOODLE Themen:

WinVetpro im Betriebsmodus Laptop

s aus -Programm sichern Wählen Sie auf der "Startseite" die Option " s archivieren" und dann die entsprechende Anwendung aus.

Professionelle Seminare im Bereich MS-Office

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Einführung in TexMaker

Dokumentenverwaltung im Internet

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Electronic Systems GmbH & Co. KG

ecaros2 - Accountmanager

Innere Klassen in Java

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

WCF Services in InfoPath 2010 nutzen

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Abwesenheitsnotiz im Exchange Server 2010

Anleitung zum Hochladen von Bilddateien in die Bilderverwaltung des CVJM Mössingen

Installation von Druckern auf dem ZOVAS-Notebook. 1. Der Drucker ist direkt mit dem Notebook verbunden

Erstellen der Barcode-Etiketten:

Transaktionsempfehlungen im ebase Online nutzen

QTrade GmbH Landshuter Allee München Seite 1

Bedienungsanleitung Albumdesigner. Neues Projekt: Bestehendes Projekt öffnen:

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Java Web Services Metadata JSR-181

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Verwendung von QR-Codes zum Teilen von digitalen Rezepten in Printmedien mittels der Recipe Packaging Toolbox von My Own Cookbook

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

IMS - Learning Design

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Hinweise zum elektronischen Meldeformular

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Das Omnikey 8751 e-health BCS...1 Auslesen über die LAN-Schnittstelle...1 Auslesen über die serielle Schnittstelle...4

Produktschulung WinDachJournal

1 topologisches Sortieren

Medea3 Print-Client (m3_print)

Geld Verdienen im Internet leicht gemacht

MINDMAP. HANDREICHUNG (Stand: August 2013)

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Webalizer HOWTO. Stand:

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Zählen von Objekten einer bestimmten Klasse

BILDER TEILEN MIT DROPBOX

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

Arbeiten mit Workflows Installationsleitfaden Zur Installation des d3 Workflows

mobifleet Beschreibung 1. Terminverwaltung in der Zentrale

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Objektorientierte Programmierung

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6

Prinzipien Objektorientierter Programmierung

Norm 240 Versionierung

e-books aus der EBL-Datenbank

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

SJ OFFICE - Update 3.0

Abschluss Version 1.0

GITS Steckbriefe Tutorial

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Errata-Liste zum Kurs: Einführung in XML (2. Auflage)

Anleitung für die Einrichtung weiterer Endgeräte in 4SELLERS SalesControl

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

ASDI Benchmarking Projekt. Anleitung zum Datenexport

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Scanning- Reservationslösung Gemeinden Benutzerhandbuch

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Transkript:

Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt. Die Verwendung von JAX WS in SE mit dem internen WebServer wird gezeigt. Es werden auch die Grenzen beschrieben gegenüber der EE Umsetzung. In EE werden Beispiele mit GlasFish gebaut für die Verwendung von Annotations mit SOAP und REST. Auch die Verwendung von SOAP WS die mit wsdl beschrieben ist wird Vorgestellt. Hierfür wird WSImport verwendet. Der Tomcat wird mit den RI Metro und Jersy auch für WebServices nutzbar. Webservices in JAVA SE und EE Es wir unterteilt in Fähigkeiten von Java SE mit SOAP und Java EE mit SOAP und REST. Webservice in JAVA SE In Java SE können Webservices nur in SOAP realisiert werden. Dafür verwendet man JAX-WS. Als weiter Einschränkung ist zu beachten, dass der mitgelieferte http-server von Java SE7 keine verschlüsselte Verbindung unterstützt. Webservice in Java EE Es wird unterschieden in SOAP und REST. Hier wird auch die verschlüsselte Verbindung unterstützt. Hier geben die unterschiedlichen Applicationserver vor, welche Verschlüsselungen möglich sind. SOAP Webservice Beim SOAP Webservice gibt es zwei Wege, wie man den Service erstellt, Top Down und Bottom Up. Bei Top Down beginnt man mit der Beschreibung des Interfaces mit WSDL. Hierfür gibt es passende Editoren oder direkte Unterstützung in der IDE. Mit dem Programm WSimport generiert man dann die Java-Klassen für den Aufruf. Jetzt sind die Implementierungsklassen noch mit der Realisierung des Webservice zu füllen. Bei Bottom Up beginnt man mit der Implementierung der Webservices. Bei Java EE kann man sehr leicht aus einem Sessionbean durch hinzufügen der Webservice-Annotation einen Webservice machen. Bei Java SE werden auch die WebService-Annotations verwendet. Hier muss dann noch die Implementierung vorgenommen werden und es müssen noch die EndPoints eingetragen werden. Das WSDL wird hier von Java SE oder dem Applicationserver generiert. REST WebService Beim REST WebService gibt es keine Interface Beschreibung. Hier wird die Implementierung direkt mit den Annotations umgesetzt.

Realisierung Angefangen wird mit dem Beispiel für SOAP in Java SE. Eine einfache wsdl-datei wird genommen, aus dem die Klassen für den WebService generiert werden. Die Datei heißt Hello.wsdl und mit folgendem Aufruf wird der Java-Teil daraus generiert: wsimport -d gen -Xnocompile Hello.wsdl Dabei ist das Verzeichnis zum Generieren gen und es wird nicht direkt übersetzt. wsimport -clientjar HelloWS.jar Hello.wsdl Hier wird der Zugriff direkt in ein Jar verpackt. Das Generieren geht auch mit ANT: <taskdef name="wsimport" classname="com.sun.tools.ws.ant.wsimport"> <classpath> <fileset dir="wstools" includes="*.jar" /> </classpath> </taskdef> <target name="wsimp" depends="xjc"> <mkdir dir="srcwsimp"/> <wsimport destdir="srcwsimp2" sourcedestdir="srcwsimp" xnocompile="true" wsdl="wsdl/hello.wsdl" wsdllocation="http://localhost:8442/beispiel/hallo?wsdl"> <depends file="wsdl/hello.wsdl"/> <produces dir="srcwsimp"/> </wsimport> </target> Dabei werden die Dateien nach srcwsimp generiert. Das Generieren geht auch mit Maven: <build> <plugins> <plugin> <groupid>org.jvnet.jax-ws-commons</groupid> <artifactid>jaxws-maven-plugin</artifactid> <version>2.2</version> <executions> <execution> <goals> <goal>wsimport</goal> </goals> </execution> </executions> <configuration> <wsdldirectory>${basedir/src/wsdl</wsdldirectory>

<wsdllocation>http://localhost:8442/beispiel/hallo?wsdl</wsdllocation> </configuration> </plugin> </plugins> </build> Jetzt kann man sich die generierten Dateien ansehen. Dabei wird der WebService als Interface zur Verfügung gestellt. @WebService(name = "Hallo", targetnamespace = "http://www.beispiel.de/beispiel") @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) @XmlSeeAlso({ ObjectFactory.class ) public interface Hallo { @WebMethod(action = "http://www.beispiel.de/beispiel/hallo") public void hallo(); Für den Zugriff wurde folgender Client generiert: @WebServiceClient(name = "HalloInterfaceService", targetnamespace = "http://www.beispiel.de/beispiel/hallo", wsdllocation = "http://localhost:8442/beispiel/hallo?wsdl") public class HalloInterfaceService extends Service { Wie der Name Client schon sagt, ist es die Implementierung für den Client. Damit hat man mit dem generierten Jar auch schon die Implementierung für den Client. Uns geht s jetzt um die Implementierung des Servers. Dafür kann man eine Klasse realisieren: @MTOM @WebService(endpointInterface = "de.beispiel.beispiel.hallo", targetnamespace = "http://www.beispiel.de/beispiel/hallo", servicename = "HalloInterfaceService") public class ServerHallo implements Hallo @Override public String hallo() { return "Hallo SOAP WS"; Damit ist das generierte Interface als Basis für die Implementierung genommen worden. Zum Starten des WebServices braucht man in Java SE nur den Endpoint zu veröffentlichen:

public static void main(string[] args) { Endpoint.publish("http://localhost:8442/Beispiel/Hallo", new ServerHallo()); Und schon läuft der WebService als eigener Thread. Für den AppServer GlassFish reicht es die War-Datei zu erstellen und zu deployen. Es sind keine Einträge in web.xml notwendig. WebService mit Annotation Zum Realisieren des WebService kann man auch mit dem Java-Code beginnen. Dafür wird die Realisierung um die Annotations erweitert. @MTOM @WebService(targetNamespace = "http://www.beispiel.de/beispiel/hallo", servicename = "HalloInterfaceService", name = "Hallo", portname = "HalloPort") public class ServerHallo { @WebMethod(action = "http://www.beispiel.de/beispiel/hallo") public String hallo() { return "Hallo SOAP WS"; Jetzt kann man sich noch das WSDL generieren lassen. Es ist nicht nötig in Java 7 SE oder bei GlassFish. wsgen -keep -s srcgen -r srcgen -wsdl -d bingen -inlineschemas de.beispiel.beispiel.hallo.serverhallo Hierbei ist wsdl und inlineschemas sinnvoll, damit man nur eine wsdl-datei hat, die nicht noch von externen xsd-dateien abhängig ist, die auch zur Verfügung gestellt werden müssten. Leider ist die wsdl-datei nicht vollständig, sondern nur eingeschränkt nutzbar. Für WebService-Aufrufe ist sie ausreichend, aber zum Generieren des Client-Jar mit wsimport ist nicht alles vorhanden. Der Rest geht genauso wie bei dem WebService aus der WSDL. REST WebService Für die Implementierung von REST Webservices werden die Annotations eingetragen. Hier ein Beispiel mit Daten: @Path("/RS") public class DatenService @GET @Path("/Status")

@Produces(MediaType.APPLICATION_XML) public String getstatus() { int anzahl = buf.getidmap().size(); return "<?xml version=\"1.0\" encoding=\"utf- 8\"?><Status><Server>Status Online!</Server></Status>"; @PUT @Path("/Daten/{name") @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.APPLICATION_XML) public String setdaten(@pathparam("name") String name, String daten) Hier ist der Pfad für das Abholen des Status /RS/Status und die Antwort ist in XML. In der Datei web.xml ist folgender Eintrag vorzunehmen: <servlet> <servlet-name>jersey REST Service</servlet-name> <servletclass>com.sun.jersey.spi.container.servlet.servletcontainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jersey REST Service</servlet-name> <url-pattern>/daten/*</url-pattern> </servlet-mapping> Tomcat erweitern für die WebServices Man kann die WebServices SOAP und REST auch mit dem Tomcat verwenden. Dafür müssen die RferenzImplementierungen(RI) in Tomcat installiert werden. Für SOAP ist die RI Metro mit der Beschreibung im Netz: http://metro.java.net/1.2/docs/install.html Für REST ist die RI Jersey mit der Beschreibung im Netz: http://jersey.java.net/ Kontaktadresse: Wolfgang Nast MT AG Balcke-Dürr-Allee 9 D-40882 Ratingen Telefon: +49 (0) 2102 30961-0 Fax: +49 (0) 2102 30961-101 E-Mail Wolfgang.Nast@mt-ag.com Internet: www.mt-ag.com