📜  RESTful Web服务-第一个应用程序

📅  最后修改于: 2020-10-20 04:36:33             🧑  作者: Mango


让我们开始使用Jersey框架编写实际的RESTful Web服务。在开始使用Jersey框架编写第一个示例之前,必须确保已按照RESTful Web服务-环境设置一章中的说明正确设置了Jersey环境。在这里,我还假设您对Eclipse IDE有所了解。

因此,让我们继续编写一个简单的Jersey应用程序,它将公开一个Web服务方法以显示用户列表。

创建一个Java项目

第一步是使用Eclipse IDE创建一个动态Web项目。遵循选项文件→新建→项目,最后从向导列表中选择Dynamic Web Project向导。现在,使用向导窗口将项目命名为UserManagement ,如以下屏幕截图所示-

动态Web项目向导

成功创建项目后,您的项目资源管理器中将具有以下内容-

用户管理目录

添加所需的库

第二步,让我们在项目中添加Jersey框架及其依赖项(库)。从项目的WEB-INF / lib目录中的下载jersey zip文件夹的以下目录中复制所有jar。

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

现在,右键单击您的项目名称UserManagement ,然后按照上下文菜单中可用的选项-“构建路径”→“配置构建路径”显示“ Java构建路径”窗口。

现在,使用“库”选项卡下的“添加JAR”按钮添加WEBINF / lib目录中存在的JAR。

创建源文件

现在,让我们在UserManagement项目下创建实际的源文件。首先,我们需要创建一个名为com.tutorialspoint的包。为此,请右键单击“包资源管理器”部分中的src,然后按照选项-新建→包进行操作

接下来,我们将在com.tutorialspoint包下创建UserService.java,User.java,UserDao.java文件。

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 getAllUsers(){ 
      
      List userList = null; 
      try { 
         File file = new File("Users.dat"); 
         if (!file.exists()) { 
            User user = new User(1, "Mahesh", "Teacher"); 
            userList = new ArrayList(); 
            userList.add(user); 
            saveUserList(userList); 
         } 
         else{ 
            FileInputStream fis = new FileInputStream(file); 
            ObjectInputStream ois = new ObjectInputStream(fis); 
            userList = (List) ois.readObject(); 
            ois.close(); 
         } 
      } catch (IOException e) { 
         e.printStackTrace(); 
      } catch (ClassNotFoundException e) { 
         e.printStackTrace(); 
      }   
      return userList; 
   } 
   private void saveUserList(List 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 getUsers(){ 
      return userDao.getAllUsers(); 
   }  
}

关于主程序,有两点需要注意,

UserService.java

  • 第一步是使用@Path注释为UserService指定Web服务的路径。

  • 第二步是使用@Path注释UserService的方法为特定的Web服务方法指定路径。

创建Web.xml配置文件

您需要创建一个Web xml配置文件,该文件是一个XML文件,用于为我们的应用程序指定Jersey框架servlet。

web.xml

 
 
   User Management 
    
      Jersey RESTful Application 
      org.glassfish.jersey.servlet.ServletContainer 
       
         jersey.config.server.provider.packages 
         com.tutorialspoint 
       
    
    
      Jersey RESTful Application 
      /rest/* 
      

部署程序

完成创建源和Web配置文件后,就可以开始执行此步骤,该步骤正在编译和运行程序。为此,请使用Eclipse将您的应用程序导出为war文件,然后将其部署在tomcat中。

要使用eclipse创建WAR文件,请遵循选项文件→导出→Web→战争文件,最后选择项目UserManagement和目标文件夹。要在Tomcat中部署war文件,请将UserManagement.war放置在Tomcat安装目录→webapps目录中,然后启动Tomcat。

运行程序

我们正在使用Chrome扩展程序Postman来测试我们的网络服务。

向UserManagement请求以获取所有用户的列表。将带有GET请求的http:// localhost:8080 / UserManagement / rest / UserService / users放入POSTMAN中,然后看到以下结果。

RESTful API,所有用户

恭喜,您已经成功创建了第一个RESTful应用程序。