Servizi Web RESTful - Prima applicazione

Cominciamo a scrivere i servizi Web RESTful effettivi con Jersey Framework. Prima di iniziare a scrivere il tuo primo esempio utilizzando Jersey Framework, devi assicurarti di aver configurato correttamente il tuo ambiente Jersey come spiegato nel capitolo Servizi Web RESTful - Configurazione dell'ambiente . Qui, presumo anche che tu abbia una piccola conoscenza operativa di Eclipse IDE.

Quindi, procediamo a scrivere una semplice applicazione Jersey che esporrà un metodo di servizio web per visualizzare l'elenco degli utenti.

Creazione di un progetto Java

Il primo passo è creare un progetto Web dinamico utilizzando Eclipse IDE. Segui l'opzioneFile → New → Project e infine seleziona il file Dynamic Web Projectprocedura guidata dall'elenco delle procedure guidate. Ora assegna un nome al tuo progetto comeUserManagement utilizzando la finestra della procedura guidata come mostrato nello screenshot seguente -

Una volta che il tuo progetto è stato creato con successo, avrai il seguente contenuto nel tuo file Project Explorer -

Aggiunta delle librerie richieste

Come secondo passo aggiungiamo Jersey Framework e le sue dipendenze (librerie) nel nostro progetto. Copia tutti i jar dalle seguenti directory della cartella zip di download jersey nella directory WEB-INF / lib del progetto.

  • \jaxrs-ri-2.17\jaxrs-ri\api
  • \jaxrs-ri-2.17\jaxrs-ri\ext
  • \jaxrs-ri-2.17\jaxrs-ri\lib

Ora, fai clic con il pulsante destro del mouse sul nome del progetto UserManagement e poi segui l'opzione disponibile nel menu contestuale - Build Path → Configure Build Path per visualizzare la finestra Percorso build Java.

Ora usa Add JARs pulsante disponibile sotto Libraries scheda per aggiungere i JAR presenti nella directory WEBINF / lib.

Creazione dei file di origine

Ora creiamo i file sorgente effettivi sotto UserManagementprogetto. Per prima cosa dobbiamo creare un pacchetto chiamatocom.tutorialspoint. Per fare ciò, fai clic con il pulsante destro del mouse su src nella sezione Esplora pacchetti e segui l'opzione -New → Package.

Successivamente creeremo UserService.java, User.java,UserDao.java file nel pacchetto com.tutorialspoint.

User.java

package com.tutorialspoint;  

import java.io.Serializable;  
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 
@XmlRootElement(name = "user") 

public class User implements Serializable {  
   private static final long serialVersionUID = 1L; 
   private int id; 
   private String name; 
   private String profession;  
   public User(){} 
    
   public User(int id, String name, String profession){  
      this.id = id; 
      this.name = name; 
      this.profession = profession; 
   }  
   public int getId() { 
      return id; 
   }  
   @XmlElement 
   public void setId(int id) { 
      this.id = id; 
   } 
   public String getName() { 
      return name; 
   } 
   @XmlElement
   public void setName(String name) { 
      this.name = name; 
   } 
   public String getProfession() { 
      return profession; 
   } 
   @XmlElement 
   public void setProfession(String profession) { 
      this.profession = profession; 
   }   
}

UserDao.java

package com.tutorialspoint;  

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException;  
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.util.ArrayList; 
import java.util.List;  

public class UserDao { 
   public List<User> getAllUsers(){ 
      
      List<User> userList = null; 
      try { 
         File file = new File("Users.dat"); 
         if (!file.exists()) { 
            User user = new User(1, "Mahesh", "Teacher"); 
            userList = new ArrayList<User>(); 
            userList.add(user); 
            saveUserList(userList); 
         } 
         else{ 
            FileInputStream fis = new FileInputStream(file); 
            ObjectInputStream ois = new ObjectInputStream(fis); 
            userList = (List<User>) ois.readObject(); 
            ois.close(); 
         } 
      } catch (IOException e) { 
         e.printStackTrace(); 
      } catch (ClassNotFoundException e) { 
         e.printStackTrace(); 
      }   
      return userList; 
   } 
   private void saveUserList(List<User> userList){ 
      try { 
         File file = new File("Users.dat"); 
         FileOutputStream fos;  
         fos = new FileOutputStream(file); 
         ObjectOutputStream oos = new ObjectOutputStream(fos); 
         oos.writeObject(userList); 
         oos.close(); 
      } catch (FileNotFoundException e) { 
         e.printStackTrace(); 
      } catch (IOException e) { 
         e.printStackTrace(); 
      } 
   }    
}

UserService.java

package com.tutorialspoint;  

import java.util.List; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType;  
@Path("/UserService") 

public class UserService {  
   UserDao userDao = new UserDao();  
   @GET 
   @Path("/users") 
   @Produces(MediaType.APPLICATION_XML) 
   public List<User> getUsers(){ 
      return userDao.getAllUsers(); 
   }  
}

Ci sono due punti importanti da notare sul programma principale,

UserService.java

  • Il primo passaggio consiste nello specificare un percorso per il servizio Web utilizzando l'annotazione @Path in UserService.

  • Il secondo passaggio consiste nello specificare un percorso per il particolare metodo del servizio Web utilizzando l'annotazione @Path al metodo di UserService.

Creazione del file di configurazione Web.xml

È necessario creare un file di configurazione xml Web che è un file XML e viene utilizzato per specificare il servlet del framework Jersey per la nostra applicazione.

web.xml

<?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"  
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
   id = "WebApp_ID" version = "3.0"> 
   <display-name>User Management</display-name> 
   <servlet> 
      <servlet-name>Jersey RESTful Application</servlet-name> 
      <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
      <init-param> 
         <param-name>jersey.config.server.provider.packages</param-name> 
         <param-value>com.tutorialspoint</param-value> 
      </init-param> 
   </servlet> 
   <servlet-mapping> 
      <servlet-name>Jersey RESTful Application</servlet-name> 
      <url-pattern>/rest/*</url-pattern> 
   </servlet-mapping>   
</web-app>

Distribuzione del programma

Una volta che hai finito con la creazione di file di configurazione web e sorgente, sei pronto per questo passaggio che è la compilazione e l'esecuzione del tuo programma. Per fare ciò, utilizzando Eclipse, esporta la tua applicazione come file war e distribuisci lo stesso in Tomcat.

Per creare un file WAR utilizzando eclipse, segui l'opzione File → export → Web → War Filee infine selezionare Gestione utenti del progetto e cartella di destinazione. Per distribuire un file war in Tomcat, posizionare UserManagement.war nel fileTomcat Installation Directory → webapps directory e avvia il Tomcat.

Esecuzione del programma

Utilizziamo Postman , un'estensione di Chrome, per testare i nostri servizi web.

Fare una richiesta a UserManagement per ottenere l'elenco di tutti gli utenti. Metti http: // localhost: 8080 / UserManagement / rest / UserService / users in POSTMAN con la richiesta GET e vedi il seguente risultato.

Congratulazioni, hai creato con successo la tua prima applicazione RESTful.