欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

jersey2搭建流程

程序员文章站 2022-06-05 19:30:46
...

一:环境介绍 (1)Jersey2.5.1 (2)Eclipse 3.7 Tomcat 7 JDK 7 二:搭建步骤 (1)通过地址https://jersey.java.net/下载jaxrs-ri-2.5.1.zip。 (2)通过Eclipse 创建动态工程RestDemo。 (3)解压jaxrs-ri-2.5.1.zip,拷贝下图列表中的JAR包到RestDemo\W

一:环境介绍
(1)Jersey2.5.1
(2)Eclipse 3.7 +Tomcat 7 +JDK 7

二:搭建步骤
(1)通过地址https://jersey.java.net/ 下载jaxrs-ri-2.5.1.zip。
(2)通过Eclipse 创建动态工程RestDemo。
(3)解压jaxrs-ri-2.5.1.zip,拷贝下图列表中的JAR包到RestDemo\WebContent\WEB-INF\lib下。
jersey2搭建流程

(4)创建包路径 cn.com.vs.vo,创建User.java:


package cn.com.vs.vo;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class User {

private String name;

private String age;

private String sex;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}


(5)创建包路径 cn.com.vs.service,创建RestService.java:


package cn.com.vs.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import cn.com.vs.vo.User;
@Path("/restService")
public class RestService {
@GET
@Path("/getUserText")
@Produces(MediaType.TEXT_PLAIN)
public String getUserText() {
return "Hello,World!";
}

@GET
@Path("/getUserXml")
@Produces(MediaType.APPLICATION_XML)
public User getUserXml() {
User user = new User();
user.setName("snail");
user.setAge("22");
user.setSex("male");
return user;
}

@GET
@Path("/getUserJson")
@Produces(MediaType.APPLICATION_JSON)
public User getUserJson() {
User user = new User();
user.setName("snail");
user.setAge("22");
user.setSex("male");
return user;
}
}


(6)在 cn.com.vs 包路径下创建类 RestApplication.java


package cn.com.vs;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;
public class RestApplication extends ResourceConfig {
public RestApplication() {
//服务类所在的包路径
packages("cn.com.vs.service");
//打印访问日志,便于跟踪调试,正式发布可清除
register(LoggingFilter.class);
}
}


(7)修改web.xml,内容如下:




RestDemo

mobile
org.glassfish.jersey.servlet.ServletContainer

javax.ws.rs.Application
cn.com.vs.RestApplication

1


mobile
/rest/*


index.html


(8)在 Tomcat7 中部署运行,查看发布效果:
获取 文本数据:
jersey2搭建流程

获取XML数据:
jersey2搭建流程


获取JSON数据:http://localhost:8080/RestDemo/rest/restService/getUserJson ,会出现如下异常:

[org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class cn.com.vs.vo.User, genericType=class cn.com.vs.vo.User.] with root cause
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class cn.com.vs.vo.User, genericType=class cn.com.vs.vo.User.


说明:如果通过glassfish-4.0运行的话,是没任何问题的!如果通过tomcat,需要添加JSON转换器。
(9)解决获取JSON数据的异常,途径一:
a)下载 jackson-all-1.9.11.jar ,放到lib下。
b)修改RestApplication.java,内容如下:


package cn.com.vs;
import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;
public class RestApplication extends ResourceConfig {
public RestApplication() {
//服务类所在的包路径
packages("cn.com.vs.service");
//注册JSON转换器
register(JacksonJsonProvider.class);

//打印访问日志,便于跟踪调试,正式发布可清除
register(LoggingFilter.class);
}
}


(10)解决获取JSON数据的异常,途径二:
a) 下载 glassfish-4.0.zip ,解压,拷贝下列JAR到lib下:
jersey2搭建流程

b)修改RestApplication.java,内容如下:


package cn.com.vs;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;
public class RestApplication extends ResourceConfig {
public RestApplication() {
//服务类所在的包路径
packages("cn.com.vs.service");
//注册JSON转换器
register(JacksonFeature.class);

//打印访问日志,便于跟踪调试,正式发布可清除
register(LoggingFilter.class);
}
}


(11)选择上述途径中的一种,然后发布启动,获取JSON数据,即可成功,如下:
jersey2搭建流程



附件是我搭建的demo,由于目前最新版本为jersey2.13.我使用的是jersey2。13.jersey2搭建流程