Servizos Descansan con Java usando JAX-RS e Jersey

en

Exemplo de como crear un Java API (JAX-RS) con servizos de repouso usando Jersey con Eclipse nun proxecto Maven.

Requisitos

Para completar este exitoso tutorial, é necesario ter instalado eclipse, o servidor de Tomcat e ter nocións básicas de Java.

o que é un servizo de descanso.

O descanso é a transferencia de estado representatorial acrónimo. É unha arquitectura de software para desenvolver servizos web. Coloquialmente, un servizo web serve para facer unha chamada a un URL (normalmente http) e obter datos de resposta do servidor (principalmente en formato JSON ou XML).

Nos últimos anos, establecéronse servizos web de descanso Modelo predominante na web, desprazando outras arquitecturas como xabón.

jax-rs e jersey

jax-r é un Java API para os servizos web de descanso que é parte de Java EE.

Jersey é un marco que simplifica aínda máis o uso de JAX-R estendendo e dando máis funcionalidades para os desenvolvedores.

Creación do proxecto en Eclipse

O primeiro O paso será para crear unha aplicación chamada Appirest. En Eclipse imos ao menú de ficheiros > Novo > Dynamic Web Project. Entón, só escribimos o nome do proxecto como na imaxe e terminamos acabando.

Cambiar o tipo de proxecto a maven

Maven serve para xestionar as dependencias do proxecto. Servirá principalmente para gravar as bibliotecas externas utilizadas polo proxecto coas súas respectivas versións. Para obter eclipsar o proxecto como un proxecto Maven, convertémolo. Pois imos á xanela do proxecto Explorer (se non o temos aberto no menú da xanela > Mostrar vista > Explorer Project), No cartafol principal do proxecto, faga clic no botón dereito > Configure > Converter a MAVEN Project. Deixámolo como está na imaxe e ao acabado de prensa.

Crea automaticamente un ficheiro POM.XML na raíz do proxecto que é onde nós manexará as bibliotecas. Para este exemplo imos usar as bibliotecas ASM.JAR, JERSEY-BUNDA.JAR, JSON.JAR e JERSEY-server.jar. Para editar pom.xml podemos facer clic no botón dereito do botón dereito > Abrir con > Editor de texto e pegar este XML:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ApiRest</groupId> <artifactId>ApiRest</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-bundle</artifactId> <version>1.19</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20140107</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.19</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.19</version> </dependency> </dependencies></project>

Implementación dun servizo web

Ata agora todo o que fixemos foi crear e configurar o Proxecto. Agora creamos un servizo de descanso que devolve, por exemplo, unha lista de usuarios. Pero antes de crear un paquete onde ama o noso código. Por convención, normalmente creouse un com. No Apirest / Java Recursos / SRC Folder Novo botón dereito >. Agora dentro deste botón dereito do paquete > novo >. Abrirase unha xanela e poñemos como nome da clase de usuario. Dentro de usuarioservice.java copiaremos este código:

123456789101112131415161718192021
package com;import java.util.ArrayList;import java.util.List;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.Response;import org.json.JSONException;@Path("/users")public class UsersService { private static final long serialVersionUID = 1L; @GET @Produces("application/json") public Response getUsers() throws JSONException { List<User> users = new ArrayList<>(); users.add(new User("admin")); users.add(new User("john")); users.add(new User("usuario2")); return Response.status(200).entity(users.toString()).build(); }}

Tamén crearemos un obxecto Java de Plain Old), unha clase para Definir o usuario:

1234567891011121314151617181920212223
package com;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;import org.json.JSONException;import org.json.JSONObject;@XmlRootElementpublic class User { @XmlElement(name = "username") String username; public User() { } public User(String username) { this.username = username; } @Override public String toString() { try { return new JSONObject().put("username", username).toString(); } catch (JSONException e) { return null; } }}

compilar o

Proxecto Prema no botón dereito do proxecto e nós Seleccione MAVEN > Proxecto de actualización. E damos a OK. A continuación, de novo o botón dereito do cartafol do proxecto e dálle a executar como > maven build (opción número 5). Na ventá emerxente que se abre na pestana Principal eo campo de obxectivos escribimos instalación limpa e, a continuación, fai clic en Executar.

Se todo foi ben, debería ver unha mensaxe exitosa similar a esta:

1234567
 ------------------------------------------------------------------------ BUILD SUCCESS ------------------------------------------------------------------------ Total time: 10.046 s Finished at: 2016-12-28T17:35:36+01:00 Final Memory: 17M/132M ------------------------------------------------------------------------

Executar o proxecto

Se xa temos instalado e configurado o servidor de Tomcat para Eclipse, podemos ir á pestana de servidores e, en instancia de Tomcat Server en Localhost, faga clic no botón dereito e seleccione “Engadir e eliminar …”

na xanela que Está aberto movendo a nosa aplicación apirest dispoñible para configurar e damos ao final.

Agora tes que configurar unha web.xml para o servidor de Tomcat. Crearemos un ficheiro web.XML dentro do cartafol webcontent / web-Inf e copiaremos o seguinte código XML:

12345678910111213141516171819202122232425
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>ApiRest</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>Jersey Web Application</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Web Application</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping></web-app>

para executar a instancia do servidor, Fai clic no botón dereito de Tomcat e damos comezo. Despois duns momentos, podemos abrir o navegador e visitar a URL http://localhost:8080/ApiRest/users/. Se todo foi ben, debemos ver a JSON co seguinte contido:

1234567891011



Como resumo debe ser a estrutura do directorio Isto:

123456789
ApiRest/---- src/-------- com/------------ User.java------------ UsersService.java---- WebContent/--------WEB-INF/------------web.xml---- pom.xml

prohibido a reprodución total ou parcial deste artigo sen o consentimento previo de WebToutoriales.com

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *