Iniciación a IBM JAX-RS

JAX-RS es un conjunto de interfaces y anotaciones Java™ que simplifica el desarrollo de aplicaciones REST de servidor. Si se utiliza la tecnología JAX-RS, las aplicaciones REST (Representational State Transfer) son más fáciles de desarrollar y más fáciles de consumir cuando se comparan con otros tipos de sistemas distribuidos.

Acerca de esta tarea

JAX-RS es una API Java para desarrollar aplicaciones REST de forma rápida. Aunque JAX-RS proporciona una forma más rápida de desarrollar aplicaciones web que los servlets, el objetivo principal de JAX-RS es crear servicios RESTful. JAX-RS 1.0 define una API de componente del extremo del servidor para crear aplicaciones REST. La implementación de IBM® con JAX-RS proporciona una implementación de la especificación de JAX-RS (JSR 311).

Utilice esta guía de iniciación como ayuda para desarrollar y desplegar de forma rápida una simple aplicación web de JAX-RS.

Este procedimiento ilustra el desarrollo de un servicio Hello World simple que se empaqueta en un módulo de archivador de aplicación web (WAR).

Procedimiento

  1. Cree una clase Java. Esta clase se utiliza para representar un tipo de recurso.
    package com.ibm.jaxrs.sample;
    
    public class HelloWorldResource {
    
    }
  2. Anote la clase Java con una anotación javax.ws.rs.Path. El valor de la anotación es la parte relacionada con el URL después del contexto de aplicación. El contexto de aplicación se define completamente durante el despliegue. En la terminología JAX-RS, esta clase se conoce como recurso root.
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
    }
  3. Cree un método Java que devuelva una respuesta Hello World! El diseño del método es para que se invoque cuando se reciba una solicitud HTTP.
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
        public String sayHelloWorld() {
            return "Hello World!";
        }
    }
  4. Añada una anotación javax.ws.rs.GET al método Java.
    Ahora, siempre que la aplicación reciba una solicitud HTTP GET en la vía de acceso /helloworld, se invocará al método Java sayHelloWorld. El cuerpo de mensaje de respuesta contendrá Hello World! como contenido.
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
        @javax.ws.rs.GET
        public String sayHelloWorld() {
            return "Hello World!";
        }
    }
    Ahora se habrá completado la implementación del recurso.
  5. Debe crear la subclase de configuración JAX-RS javax.ws.rs.core.Application. Esta subclase debe devolver el conjunto de clases Java que sea de interés para el entorno de ejecución de 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;
        }
    }
  6. Cree el archivo de configuración del módulo web web.xml.
    El archivo indica al contenedor web que el módulo web contiene el servlet IBM JAX-RS. Debe iniciar el servlet IBM JAX-RS Rest con la clase de configuración de la aplicación.
    <?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>
    Consulte la correlación de servlet que se ha especificado en el ejemplo anterior. El patrón se utiliza para ayudar a determinar el último URL del servicio RESTful.
  7. Añada el archivo j2ee.jar a la vía de acceso de clases.

    Obtenga el archivo j2ee.jar del directorio raíz_servidor_aplic/dev/JavaEE y añada el archivo JAR a la vía de acceso de clases. Compile las clases.

  8. Ensamble la aplicación web.
    Mediante la utilización de la herramienta de línea de mandatos jar que se incluye con el JDK, ejecute el mandato siguiente:
    jar cvf helloworld-jaxrs.war *
    Este mandato crea un archivo WAR.
  9. Despliegue la aplicación en el servidor de aplicaciones.

    Cuando se despliega la aplicación, es posible que se le pida que proporcione un valor para la raíz de contexto del módulo. La raíz de contexto del módulo se utiliza para definir el contexto de la aplicación.

    Cuando se utiliza el servlet IBM JAX-RS, el URL siguiente define el contexto de la aplicación:
    http://<nombre_host>:<puerto_contenedor_web>/<raíz_contexto_aplicación_web>/patrón_correlación_servlet
    Los URL de recursos root que se especifican mediante los valores @javax.ws.rs.Path son relativos a la raíz de contexto de la aplicación. Por consiguiente, si la raíz de contexto se define como myapplication durante el despliegue, el patrón de URL se define en el archivo web.xml como /rest/* y la clase de recursos root Java tiene un valor @javax.ws.rs.Path de /helloworld. Un ejemplo del URL final sería:
    http://localhost:9080/myapplication/rest/helloworld

    Ahora, puede enviar una solicitud de cliente al URL final utilizando un navegador web o cualquier otro cliente HTTP.

Resultados

Ha desarrollado y desplegado una aplicación web de JAX-RS en el servidor de aplicaciones.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_getstarted
File name: twbs_jaxrs_getstarted.html