JAX-RS est une collection d'interfaces et d'annotations Java™ qui simplifient le développement des applications REST côté serveur. En utilisant la technologie JAX-RS, les applications REST (Representational
State Transfer) sont plus simples à développer etconsommer comparé aux autres types de systèmes répartis.
Pourquoi et quand exécuter cette tâche
JAX-RS est une API Java qui permet de développer rapidement des applications REST. Bien que JAX-RS offre un moyen de développer des applications web plus rapidement qu'avec les servlets, la fonction principale de JAX-RS est de créer des services
RESTful. JAX-RS 1.0 définit une API de composants serveur pour créer des applications REST. L'implémentation IBM® de JAX-RS fournit une implémentation de la spécification JAX-RS (JSR 311).
Utilisez ce guide d'initiation pour développer et déployer rapidement une application Web JAX-RS simple.
Cette procédure explique le développement d'un service simple Hello World assemblé dans un module WAR (web archive).
Procédure
- Créez une classe Java. Cette classe est utilisée pour représenter un type de ressource.
package com.ibm.jaxrs.sample;
public class HelloWorldResource {
}
- Annotez la classe Java avec une annotation javax.ws.rs.Path. La valeur de l'annotation est la partie relative de l'URL après le contexte d'application. Le contexte d'application est complètement défini au cours du déploiement. Dans la terminologie JAX-RS, cette classe s'appelle une ressource racine.
package com.ibm.jaxrs.sample;
@javax.ws.rs.Path("/helloworld")
public class HelloWorldResource {
}
- Créez une méthode Java qui retourne la réponse Hello World! . Elle est destinée à la méthode à appeler lorsqu'une demande HTTP est reçue.
package com.ibm.jaxrs.sample;
@javax.ws.rs.Path("/helloworld")
public class HelloWorldResource {
public String sayHelloWorld() {
return "Hello World!";
}
}
- Ajoutez une annotation javax.ws.rs.GET à la méthode Java.
Maintenant, lorsqu'une demande HTTP GET est reçue par l'application dans le chemin
/helloworld, la méthode
/helloworld Java est appelée. Le corps du message de réponse contiendra
Hello
World! comme contenu.
package com.ibm.jaxrs.sample;
@javax.ws.rs.Path("/helloworld")
public class HelloWorldResource {
@javax.ws.rs.GET
public String sayHelloWorld() {
return "Hello World!";
}
}
L'implémentation de ressource est terminée.
- Vous devez créer la sous-classe de configuration JAX-RS javax.ws.rs.core.Application. Cette sous-classe doit retourner le groupe de classes Java correspondant à l'environnement d'exécution JAX-RS.
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;
}
}
- Créez le fichier de configuration web.xml du module Web.
Le fichier indique au conteneur Web que le module Web contient le servlet IBM JAX-RS REST. Vous devez initialiser le servlet IBM JAX-RS
Rest avec la classe de configuration de l'application.
<?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>
Voir le mappage de servlet défini dans l'exemple précédent. Le modèle est utilisé pour déterminer l'URL finale du service RESTful.
- Ajoutez le fichier
j2ee.jar au chemin d'accès aux classes.
Obtenez le fichier j2ee.jar du répertoire app_server_root/dev/JavaEE
et ajoutez le fichier JAR au chemin d'accès aux classes. Compilez les classes.
- Assemblez l'application Web.
En utilisant l'outil de ligne de commande
jar inclus avec le kit Java Development, exécutez la commande suivante :
jar cvf helloworld-jaxrs.war *
Cette commande crée un fichier WAR.
- Déployez l'application sur le serveur d'applications.
Lors du déploiement de l'application, un message peut vous demander de fournir une valeur pour la racine de contexte du module. La racine de contexte est utilisée pour définir le contexte de l'application.
Lors de l'utilisation du servlet IBM JAX-RS, l'URL suivante définit le contexte d'application :
http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>/servlet_mapping_pattern
Les URL de ressource racine spécifiées par les valeurs
@javax.ws.rs.Path sont relatives à la racine de contexte de l'application. Par conséquent, si la racine de contexte
myapplication est définie lors du déploiement, le modèle d'URL
/rest/* est défini dans le fichier
web.xml et la classe de ressources racine Java a la valeur
@javax.ws.rs.Path,
/helloworld.
Voici un exemple d'URL finale :
http://localhost:9080/myapplication/rest/helloworld
Maintenant, vous pouvez envoyer une demande client à l'URL finale en utilisant un navigateur web ou n'importe quel autre client HTTP.
Résultats
Vous avez développé et déployé une application Web JAX-RS sur le serveur d'applications.