首页 技术 正文
技术 2022年11月17日
0 收藏 867 点赞 4,814 浏览 3881 个字

本文参考 http://www.cnblogs.com/bluesfeng/archive/2010/10/28/1863816.html


环境:

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);
}
}

创建完之后项目结构如图:

jersey + tomcat 实现restful风格

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 就看以看到如下结果:

jersey + tomcat 实现restful风格

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

第一篇处女博文,觉得不好请将就下看这,如果该博文侵犯 原作者版权请尽快联系我

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,987
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,503
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,347
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,130
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,765
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,842