昆明java培训
达内昆明广州春城路

18487146383

热门课程

jersey + tomcat实现restful风格

  • 时间:2016-11-08
  • 发布:昆明Java培训
  • 来源:博客园

昆明达内Java培训的老师今天给大家讲jersey + tomcat实现restful风格。

环境:

idea 15.0.2

jersey 1.3

tomcat 7.0

maven 3.3.3

1.idea基于maven构建webapp略过

2.项目构建完成之后pom.xml文件加入项目所需包:

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.7</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>com.sun.jersey</groupId>

<artifactId>jersey-core</artifactId>

<version>1.3</version>

</dependency>

<dependency>

<groupId>com.sun.jersey</groupId>

<artifactId>jersey-server</artifactId>

<version>1.3</version>

</dependency>

<dependency>

<groupId>com.sun.jersey</groupId>

<artifactId>jersey-client</artifactId>

<version>1.3</version>

</dependency>

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.14</version>

</dependency>

<dependency>

<groupId>javax.ws.rs</groupId>

<artifactId>jsr311-api</artifactId>

<version>1.1.1</version>

</dependency>

<dependency>

<groupId>asm</groupId>

<artifactId>asm</artifactId>

<version>3.2</version>

</dependency>

3.创建pojo类Student:

@XmlRootElement

public class Student {

private int id;

private String name;

private String dept;

public int getId() {

return id;

}

public Student() {

}

public Student(int id, String name, String dept) {

super();

this.id = id;

this.name = name;

this.dept = dept;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getDept() {

return dept;

}

public void setDept(String dept) {

this.dept = dept;

}

}

同时创建资源类:

@Path("/students")

public class RestWsDemo {

private static Logger logger = Logger.getLogger(RestWsDemo.class);

private static int index = 1;

private static Map<Integer,Student> studentList = new HashMap<Integer, Student>();

public RestWsDemo() {

if(studentList.size()==0) {

studentList.put(index, new Student(index++, "Frank", "CS"));

studentList.put(index, new Student(index++, "Jersey", "Math"));

}

}

@GET

@Path("{studentid}")

@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})

public Student getMetadata(@PathParam("studentid") int studentid) {

if(studentList.containsKey(studentid))

return studentList.get(studentid);

else

return new Student(0, "Nil", "Nil");

}

@GET

@Path("list")

@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})

public List<Student> getAllStudents() {

List<Student> students = new ArrayList<Student>();

students.addAll(studentList.values());

return students;

}

@POST

@Path("add")

@Produces("text/plain")

public String addStudent(@FormParam("name") String name,

@FormParam("dept") String dept) {

studentList.put(index, new Student(index++, name, dept));

return String.valueOf(index-1);

}

@DELETE

@Path("delete/{studentid}")

@Produces("text/plain")

public String removeStudent(@PathParam("studentid") int studentid) {

logger.info("Receieving quest for deleting student: " + studentid);

Student removed = studentList.remove(studentid);

if(removed==null) return "failed!";

else  return "true";

}

@PUT

@Path("put")

@Produces("text/plain")

public String putStudent(@QueryParam("studentid") int studentid,

@QueryParam("name") String name,

@QueryParam("dept") String dept

) {

logger.info("Receieving quest for putting student: " + studentid);

if(!studentList.containsKey(studentid))

return "failed!";

else

studentList.put(studentid, new Student(studentid, name, dept));

return String.valueOf(studentid);

}

}

4.再web.xml配置如下:

<servlet>

<servlet-name>jerseyws</servlet-name>

<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>

<init-param>

<param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>

<param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>

</init-param>

<init-param>

<param-name>com.sun.jersey.config.property.packages</param-name>

<param-value>cz.service</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>jerseyws</servlet-name>

<url-pattern>/rest/*</url-pattern>

</servlet-mapping>

其中com.sun.jersey.config.property.packages的属性值是你资源所在的包的路径

5.maven install略过

6.启动tomcat访问路径http://localhost:8081/rest/students/list。

7.其他资源获取方式自行领悟、测试

了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:java的基本数据类型
下一篇:Spring核心组件剖析

java IO流之file类的常用操作

搭建james邮件服务器

Java识别操作系统

Struts+Spring+Hibernate项目

选择城市和中心
贵州省

广西省

海南省

台湾