讓我們使用Jersey框架開始編寫實際的RESTful web服務。 在開始使用Jersey框架編寫第一個例子,必須確保設定環境REST Web服務正常。我也假設你有一點點的使用Eclipse IDE工作的經驗。
因此,讓我們繼續編寫一個簡單的應用程式Jersey將公開一個Web服務方法來顯示使用者列表。
第一步是建立使用Eclipse IDE動態Web專案。按照選項 File -> New -> Project 並最後選擇 Dynamic Web Project 從嚮導列表向導。現在使用的嚮導視窗如下專案命名為UserManagement:
一旦專案成功建立,目錄結構在 Project Explorer:
第二步,讓我們在專案中新增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目錄下。
現在,讓我們在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:
第一步是指定用於使用@Path註釋到UserService的Web服務的路徑。
第二個步驟是,以指定用於使用@Path註釋到UserService的方法的特定web服務方法的路徑。
需要建立一個Web XML組態檔案,該檔案是一個XML檔案,用於指定Jersey框架的servlet應用。
File - 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.yiibai</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Jersey RESTful Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
一旦你使用建立源和Web組態檔案完成,這一步是準備好編譯和執行程式。要做到這一點,使用Eclipse,匯出您的應用程式為war檔案,並部署在Tomcat中。 要使用eclipse建立WAR檔案,按照選項 File -> export -> Web > War File 最後選擇專案UserManagement和目標檔案夾。 要在Tomcat部署WAR檔案,將使用者Management.war在Tomcat的安裝目錄 > webapps 目錄並啟動Tomcat。
我們使用Postman,一個Chrome擴充套件來測試Web服務。
提出一個請求到UserManagement,讓所有的使用者列表。http://localhost:8080/UserManagement/rest/UserService/users POSTMAN使用GET請求,看看下面的結果。
恭喜你,已經建立了第一個基於REST的應用成功。此外,讓我們開始做一些更有趣事情在接下來的幾章。