jersey2搭建流程

一:环境介绍 
(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下。 


(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,内容如下: 


<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>RestDemo</display-name>
  <servlet>
  <servlet-name>mobile</servlet-name>
  <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
   <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>cn.com.vs.RestApplication</param-value>
        </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet> 
 <servlet-mapping>
  <servlet-name>mobile</servlet-name>
  <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app> 


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


     获取XML数据: 



  获取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下: 
      

   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数据,即可成功,如下: 



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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十五楼亮哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值