课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > java教程 > jersey + tomcat实现restful风格
  • jersey + tomcat实现restful风格

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

  • 昆明达内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--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56