RESTEasy , projet JBoss, implémentation de la spécification JAX-RS . Dans ce didacticiel, nous vous montrons comment utiliser le framework RESTEasy pour créer une application Web de style REST simple.
Technologies et outils utilisés dans cet article:
-
RESTEasy 2.2.1.GA
-
JDK 1.6
-
Maven 3.0.3
-
Eclipse 3.6
1. Structure de l’annuaire
Examinez la structure de répertoires finale de ce didacticiel. Juste une structure de projet Web standard.
2. Projet Web standard
Créez une structure de projet Web Maven standard.
mvn archetype:generate -DgroupId=com.mkyong.common -DartifactId=RESTfulExample -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Convertir en projet Web Eclipse.
mvn eclipse:eclipse -Dwtpversion=2.0
3. Dépendances du projet
Déclare le référentiel Maven public JBoss et «
resteasy-jaxrs
» dans votre fichier
pom.xml
Maven. C’est tout ce dont vous avez besoin pour utiliser
RESTEasy
.
Fichier: pom.xml
<project ..."> <repositories> <repository> <id>JBoss repository</id> <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>2.2.1.GA</version> </dependency> </dependencies> </project>
4. Service REST
Un simple service REST. Voir la démo à la fin de l’article, cela devrait s’expliquer de soi.
package com.mkyong.rest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/message") public class MessageRestService { @GET @Path("/{param}") public Response printMessage(@PathParam("param") String msg) { String result = "Restful example : " + msg; return Response.status(200).entity(result).build(); } }
5. web.xml
Maintenant, configurez listener et le servlet pour prendre en charge RESTEasy. Lisez cette JBoss documentation pour une explication détaillée.
Fichier: web.xml
<web-app id="WebApp__ID" 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"> <display-name>Restful Web Application</display-name> <!-- Auto scan REST service --> <context-param> <param-name>resteasy.scan</param-name> <param-value>true</param-value> </context-param> <!-- this need same with resteasy servlet url-pattern --> <context-param> <param-name>resteasy.servlet.mapping.prefix</param-name> <param-value>/rest</param-value> </context-param> <listener> <listener-class> org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap </listener-class> </listener> <servlet> <servlet-name>resteasy-servlet</servlet-name> <servlet-class> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher </servlet-class> </servlet> <servlet-mapping> <servlet-name>resteasy-servlet</servlet-name> <url-pattern>/rest/** </url-pattern> </servlet-mapping> </web-app>
-
Remarque Vous devez définir « resteasy.servlet.mapping.prefix » si votre mappage de servlets pour le servlet resteasy a un modèle d’URL autre que « / ».
Dans l’exemple ci-dessus, le modèle d’URL de servlet resteasy est " /rest/ ", vous devez donc définir le "resteasy.servlet.mapping.prefix" sur " /rest ** " également, sinon message d’erreur "ressource non trouvée".
-
Remarque N’oubliez pas de définir « resteasy.scan ** » sur true afin que RESTEasy recherche et enregistre votre service REST automatiquement.
6. Démo
Dans cet exemple, la requête Web de « projectURL/rest/message/ » correspondra à « MessageRestService » et « projectURL/rest/message/\ {toutes valeurs} » correspondra à @ PathParam paramètre .
Test 1: http://localhost : 8080/RESTfulExample/rest/message/mkyong
__Test 2:
http://localhost : 8080/RESTfulExample/rest/message/hello% 20world__
Enregistrement du service REST alternatif
Dans l’exemple ci-dessus, vous inscrivez le service REST via le programme d’écoute « ResteasyBootstrap ». Ici je vous montre une autre manière.
Créez une classe et étend
javax.ws.rs.core.Application
et ajoutez votre service REST manuellement.
package com.mkyong.app; import java.util.HashSet; import java.util.Set; import javax.ws.rs.core.Application; import com.mkyong.rest.MessageRestService; public class MessageApplication extends Application { private Set<Object> singletons = new HashSet<Object>(); public MessageApplication() { singletons.add(new MessageRestService()); } @Override public Set<Object> getSingletons() { return singletons; } }
File: web.xml , plus d’écouteur, configurez votre classe d’application comme ci-dessous:
<web-app id="WebApp__ID" 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"> <display-name>Restful Web Application</display-name> <context-param> <param-name>resteasy.servlet.mapping.prefix</param-name> <param-value>/rest</param-value> </context-param> <servlet> <servlet-name>resteasy-servlet</servlet-name> <servlet-class> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher </servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.mkyong.app.MessageApplication</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>resteasy-servlet</servlet-name> <url-pattern>/rest/** </url-pattern> </servlet-mapping> </web-app>
Terminé.
Télécharger le code source
Téléchargez-le - lien://wp-content/uploads/2011/06/RESTEasy-Hello-Wello-Example.zip[RESTEasy-Hello-Wello-Example.zip](7 KB)
Références
installation et configuration]. http://www.ibm.com/developerworks/webservices/library/ws-restful/ [IBM
: RESTful Web services: The basics]. http://www.oracle.com/technetwork/articles/javase/index-137171.html [RESTful
Services Web]. http://en.wikipedia.org/wiki/Representational State Transfer[Wiki:
Transfert d’état représentatif]
lien://tag/salut-monde/[salut monde]lien://tag/jax-rs/[jax-rs]lien://tag/resteasy/[resteasy]