RESTful Web Services示例程序

讓我們使用Jersey框架開始編寫實際的RESTful web服務。 在開始使用Jersey框架編寫第一個例子,必須確保設置環境REST Web服務正常。我也假設你有一點點的使用Eclipse IDE工作的經驗。

因此,讓我們繼續編寫一個簡單的應用程序Jersey將公開一個Web服務方法來顯示用戶列表。

第1步 - 創建Java項目:

第一步是創建使用Eclipse IDE動態Web項目。按照選項 File -> New -> Project 並最後選擇 Dynamic Web Project 從嚮導列表嚮導。現在使用的嚮導窗口如下項目命名爲UserManagement:

Dynamic

一旦項目成功創建,目錄結構在 Project Explorer:

Usermanagement

第2步 - 添加必需的庫:

第二步,讓我們在項目中添加Jersey框架和它的依賴(庫)。複製所有jar文件在下載ZIP的jersey文件夾的目錄下面的所有文件到項目的WEB-INF/ lib目錄下。

  • \jaxrs-ri-2.17\jaxrs-ri\api

  • \jaxrs-ri-2.17\jaxrs-ri\ext

  • \jaxrs-ri-2.17\jaxrs-ri\lib

現在,右鍵點擊你的項目名稱用戶管理,然後按照下面選項中的上下文菜單: Build Path -> Configure Build Path 顯示Java構建路徑窗口。

現在,使用添加JAR文件可用按鈕下的庫選項卡,添加JAR文件到WEB-INF/lib目錄下。

第3步 - 創建源文件:

現在,讓我們在UserManagement 項目中創建實際的源文件。首先,我們需要創建一個名爲包 com.yiibai. 要做到這一點,右鍵單擊src在包資源管理部分並按照選項: New -> Package.

下一步,我們將創建 User.java, UserDao.java, 和 UserService.java 文件在 com.yiibai 包下.

File - User.java

package com.yiibai; 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; } }

File - UserDao.java

下面的程序已經被硬編碼爲顯示列出來的用戶的功能。在這裏,可以實現所需的業務邏輯,你可能讀取用戶,或從數據庫及任何其他資源所需的數據。

package com.yiibai; 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; } }

File - UserService.java

package com.yiibai; 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(); } }

有以下兩個要點需要注意下面的主程序,UserService.java:

  1. 第一步是指定用於使用@Path註釋到UserService的Web服務的路徑。

  2. 第二個步驟是,以指定用於使用@Path註釋到UserService的方法的特定web服務方法的路徑。

第4步 - 創建web.xml配置文件:

需要創建一個Web XML配置文件,該文件是一個XML文件,用於指定Jersey框架的servlet應用。

File - web.xml

<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"> User Management Jersey RESTful Application org.glassfish.jersey.servlet.ServletContainer jersey.config.server.provider.packages com.yiibai Jersey RESTful Application /rest/*

第5步 - 部署程序

一旦你使用創建源和Web配置文件完成,這一步是準備好編譯和運行程序。要做到這一點,使用Eclipse,導出您的應用程序爲war文件,並部署在Tomcat中。 要使用eclipse創建WAR文件,按照選項 File -> export -> Web > War File 最後選擇項目UserManagement和目標文件夾。 要在Tomcat部署WAR文件,將用戶Management.war在Tomcat的安裝目錄 > webapps 目錄並啓動Tomcat。

第6步 - 運行程序

我們使用Postman,一個Chrome擴展來測試Web服務。

提出一個請求到UserManagement,讓所有的用戶列表。http://localhost:8080/UserManagement/rest/UserService/users POSTMAN使用GET請求,看看下面的結果。

RESTful

恭喜你,已經創建了第一個基於REST的應用成功。此外,讓我們開始做一些更有趣事情在接下來的幾章。