Einführung in IBM JAX-RS

JAX-RS ist eine Sammlung von Schnittstellen und Java™-Annotationen, die die Entwicklung serverseitiger REST-Anwendungen vereinfacht. Die Verwendung der Technologie JAX-RS vereinfacht die Entwicklung und die Verwendung von REST-Anwendungen im Vergleich mit anderen Typen verteilter Systeme.

Informationen zu diesem Vorgang

JAX-RS ist eine Java-API für die schnelle Entwicklung von REST-Anwendungen. Obwohl JAX-RS eine schnellere Methode für die Entwicklung von Webanwendungen als Servlets sind, ist das primäre Ziel von JAX-RS die Erstellung von Services, die REST unterstützen. JAX-RS 1.0 definiert eine serverseitige Komponenten-API für die Erstellung von REST-Anwendungen. Die IBM® Implementierung von JAX-RS stellt eine Implementierung der JAX-RS-Spezifikation (JSR 311) bereit.

Verwenden Sie das Handbuch "Getting Started" (Erste Schritte), als Unterstützung für die Entwicklung und Implementierung einer einfachen JAX-RS-Webanwendung.

Diese Prozedur veranschaulicht die Entwicklung eines einfachen Hello-World-Service, der in einem WAR-Modul (Webarchiv) gepackt ist.

Vorgehensweise

  1. Erstellen Sie eine Java-Klasse. Diese Klasse wird zur Darstellung eines Ressourcentyps verwendet.
    package com.ibm.jaxrs.sample;
    
    public class HelloWorldResource {
    
    }
  2. Versehen Sie die Java-Klasse mit einer javax.ws.rs.Path-Annotation. Der Wert der Annotation ist der relative Teil des URL nach dem Anwendungskontext. Der Anwendungskontext wird vollständig während der Implementierung definiert. In der JAX-RS-Terminologie wird diese Klasse als Stammressource bezeichnet.
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
    }
  3. Erstellen Sie eine Java-Methode, die die Antwort Hello World! zurückgibt. Die Antwort wird von der Methode aufgerufen, wenn eine HTTP-Anforderung empfangen wird.
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
        public String sayHelloWorld() {
            return "Hello World!";
        }
    }
  4. Fügen Sie eine javax.ws.rs.GET-Annotation zur Java-Methode hinzu.
    Wenn eine HTTP-GET-Anforderung von der Anwendung im Pfad /helloworld empfangen wird, wird die Java-Methode von sayHelloWorld aufgerufen. Der Text der Antwortnachricht hat den Inhalt Hello World!.
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
        @javax.ws.rs.GET
        public String sayHelloWorld() {
            return "Hello World!";
        }
    }
    Die Implementierung der Ressource ist jetzt abgeschlossen.
  5. Sie müssen die JAX-RS-Konfigurationsunterklasse javax.ws.rs.core.Application erstellen. Diese Unterklasse muss die Gruppe der für die JAX-RS-Laufzeitumgebung relevanten Java-Klassen zurückgeben.
    package com.ibm.jaxrs.sample;
    
    public class HelloWorldAppConfig extends javax.ws.rs.core.Application {
        public Set<Class<?>> getClasses() {
            Set<Class<?>> classes = new HashSet<Class<?>>();
            classes.add(com.ibm.jaxrs.sample.HelloWorldResource.class);
            return classes;
        }
    }
  6. Erstellen Sie die Datei web.xml für die Webmodulkonfigurationsdatei.
    Die Datei informiert den Web-Container darüber, dass das Webmodul das IBM JAX-RS-REST-Servlet enthält. Sie müssen das IBM JAX-RS-REST-Servlet mit der Anwendungskonfigurationsklasse initialisieren.
    <?xml version="1.0" encoding="UTF-8"?> 
    <web-app id="WebApp_9" version="2.4" xmlns=http://java.sun.com/xml/ns/j2ee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
          <servlet>
            <servlet-name>HelloWorldApp</servlet-name>
            <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
            <init-param>
                <param-name>javax.ws.rs.Application</param-name>
                <param-value>com.ibm.jaxrs.sample.HelloWorldAppConfig</param-value>
            			</init-param>
            		<load-on-startup>1</load-on-startup>
          </servlet>    <servlet-mapping>
            <servlet-name>HelloWorldApp</servlet-name>
            <url-pattern>/rest/*</url-pattern>
        </servlet-mapping>
    </web-app>
    Sehen Sie sich die Servletzuordnung an, die im vorherigen Beispiel angegeben ist. Das Muster wird verwendet, um bei der Festlegung des endgültigen URL des RESTful-Service zu helfen.
  7. Fügen Sie die Datei j2ee.jar dem Klassenpfad hinzu.

    Rufen Sie die Datei j2ee.jar aus dem Verzeichnis Stammverzeichnis_des_Anwendungsservers/dev/JavaEE ab, und fügen Sie die JAR-Datei zum Klassenpfad hinz. Kompilieren Sie die Klassen.

  8. Assemblieren Sie die Webanwendung.
    Geben Sie im Befehlszeilentool jar, das mit dem JDK geliefert wird, den folgenden Befehl ein:
    jar cvf helloworld-jaxrs.war *
    Mit diesem Befehl wird eine WAR-Datei erstellt.
  9. Implementieren Sie die Anwendung im Anwendungsserver.

    Wenn Sie die Anwendung implementieren, werden Sie möglicherweise aufgefordert, einen Wert für das Kontextstammverzeichnis des Moduls anzugeben. Das Kontextstammverzeichnis wird verwendet, um den Anwendungskontext zu definieren.

    Bei Verwendung des IBM JAX-RS-Servlets definiert der folgende URL den Anwendungskontext:
    http://<Hostname>:<Web-Container-Port>/<Kontextstammverzeichnis_der_Webanwendung>/Muster_für_Servletzuordnung
    URLs von Stammressourcen werden durch die @javax.ws.rs.Path-Werten relativ zum Kontextstammverzeichnis der Anwendung angegeben. Daher wird das URL-Muster, wenn das Kontextstammverzeichnis während der Implementierung als myapplication definiert wird, in der Datei web.xml als /rest/* definiert, und die Java-Stammressourcenklasse hat den @javax.ws.rs.Path-Wert von /helloworld. Ein Beispiel für den endgültigen URL:
    http://localhost:9080/myapplication/rest/helloworld

    Jetzt können Sie eine Clientanforderung mit einem Web-Browser oder einem anderen HTTP-Client an den endgültigen URL senden.

Ergebnisse

Sie haben eine JAX-RS-Webanwendung auf dem Anwendungsserver entwickelt und implementiert.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_getstarted
Dateiname:twbs_jaxrs_getstarted.html