GWT+RestEasy en JBoss AS7

septiembre 12, 2011

Recientemente instalé JBoss AS7 y quede impresionado con su velocidad y rendimiento. Rápidamente quise migrar un proyecto a este servidor pero desafortunadamente no funcionó. Esto debido a que en la aplicación utilizo servicios REST con Jersey y esto ocasionó un error. Fue entonces que decidí utilizar RestEasy en vez de Jersey.

Lo primero que necesitamos es crear una aplicación de GWT con soporte para Maven. Una vez hecho esto, abrimos el archivo pom.xml y agregamos el repositorio de JBoss donde se encuentran las librerías de RestEasy

    <repositories>
        <repository>
            <id>jboss-public-repository-group</id>
            <name>JBoss Public Maven Repository Group</name>
            <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
            <layout>default</layout>
        </repository>
    </repositories>

luego agregamos la dependencia a RestEasy

<dependencies>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.2.1.GA</version>
</dependency>
</dependencies>

Por último tendríamos que configurar el archivo web.xml. La configuración va a depender de si vamos a depurar/ejecutar la aplicación en “Web Development Mode” (Debug As->Web Application) o si vamos a instalar la aplicación en el servidor JBoss AS7.
Para la primera opción necesitamos agregar lo siguiente

<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/api</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>/api/*</url-pattern>
</servlet-mapping>

Y si vamos a generar el archivo war y colocarlo en JBoss AS7 (Run As -> Maven build…   goals: clean package) tenemos que sustituir las líneas anteriores por las siguientes:

<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>

Fuentes:
http://www.mkyong.com/ (resteasy-hello-world-example)
RestEasy – User Guide
JBoss AS7 Documentation – JAX-RS

Anuncios

2 comentarios to “GWT+RestEasy en JBoss AS7”

  1. godieboy Says:

    hola, mira hago todo bien y tengo un problema es que quiero consumir mis servicios REST desde un cliente que tengo desaroollado php, y cuando quiero acceder al servicio creado no me regresa respuesta, solo en blanco, pero con status 200.
    Si entro directo a la url por el navegador si me da la respuesta, pero el chiste es que quiero acceder por medio de ajax y asi traerme la respuesta.

    El jboss lo tengo en el puerto 8081 y el cliente de php esta en el de apache que es el puerto 80, no sabes que me falta configurar para que me retorne la respuesta que deseo.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: