新彩天欢迎您!
幻海优品

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

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

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

创建Java项目

第一步是使用Eclipse IDE创建动态Web项目.按照选项 File → 新的 → 项目,最后从向导列表中选择动态Web项目向导.现在使用向导窗口将项目命名为 UserManagement ,如以下屏幕截图所示 :

动态Web项目向导

成功创建项目后,您将在项目浏览器 :

中获得以下内容b Usermanagement Directories

添加所需的库

作为第二步让我们在项目中添加Jersey Framework及其依赖项(库).从项目的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 然后关注上下文菜单中的选项 :   Build Path → 配置构建路径以显示Java构建路径窗口.

现在使用选项卡下的添加JAR 按钮添加WEBINF/lib目录中的JAR.

创建源文件

现在让我们在 UserManagement下创建实际的源文件项目.首先,我们需要创建一个名为 com.it1352的包.要执行此操作,请右键单击package explorer部分中的src,然后单击选项 :   New → 包.

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

User.java

package com.it1352; 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.it1352; 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.it1352; 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配置文件

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

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.IT屋</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 → 选项进行操作.出口 →  Web → 战争文件,最后选择项目UserManagement和目标文件夹.要在Tomcat中部署war文件,请将UserManagement.war放在 Tomcat安装目录&rarr中; webapps目录并启动Tomcat.

运行程序

我们正在使用邮递员,Chrome扩展程序,用于测试我们的网络服务.

向UserManagement发出请求以获取所有列表用户.在POSTMAN中使用GET请求放置http://localhost:8080/UserManagement/rest/UserService/users并查看以下结果.

RESTful API,所有用户

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

免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除