RESTEasy hello world exemple

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:

  1. RESTEasy 2.2.1.GA

  2. JDK 1.6

  3. Maven 3.0.3

  4. 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.

structure de répertoire

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

exemple 1

__Test 2:

http://localhost : 8080/RESTfulExample/rest/message/hello% 20world__

exemple 2

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

: 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]