jersey实现rest实例之二

1 篇文章 0 订阅
1 篇文章 0 订阅

这里介绍jersey2.x实现rest获取text,xml,json格式数据

测试项目开发部署环境

开发工具:eclipse-jee-juno-SR2-win32

JDK:jdk-7u3-windows-i586

应用服务器:glassfish-4.0

REST实现框架:jersey2.5.1

项目名称:TestJersey2.5

这里应用服务器选择glassfish-4.0,有两个原因

1.jersey2.x版本实现的是JAX-RS 2.0规范,glassfish-4.0版本之前的支持的是JAX-RS 1.0规范,glassfish-4.0要求运行版本不低于jdk7。

2.jersey2.x版本部署到tomcat里面,在返回json格式数据时,会抛异常,jersey2.x在返回json时需要glassfish提供类型支持。

Jersey2.5集成步骤:

1.新建一个动态web工程:TestJersey2.5

2.引入jar包,解压jersey2.5压缩包,将lib、ext、api中的jar文件全部引入项目

3.配置web.xml,这里主要配置jersey自己servlet,配置清单:

<?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/javaee
 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  
 
<display-name>TestJersey2.5</display-name>
  
  <servlet>
        <servlet-name>jersey_rest</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.toplucky.TestApp</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jersey_rest</servlet-name>
        <url-pattern>/jars/*</url-pattern>
    </servlet-mapping>
</web-app>


4.通过实现javax.ws.rs.Application来存放所有的rest服务资源,代码清单:

package com.toplucky;

import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;

@ApplicationPath("/jars")
public class TestApp extends ResourceConfig{

    public TestApp() {
        packages("com.toplucky.resource");
        register(LoggingFilter.class);
    }
}


5.rest服务资源定义在指定包下面,这里定义一个测试服务TestResource放在com.toplucky.resource下面,代码清单:

 package com.toplucky.resource;
  import javax.ws.rs.GET;
  import javax.ws.rs.Path;
  import javax.ws.rs.Produces;
  import javax.ws.rs.core.MediaType;
  import com.toplucky.TestBean;
 

@Path("test")
 public class TestResource {
 @Path("getText")
     @GET
     @Produces("text/plain")
      public String getText() {
         return "hello lucky";
      }
 
@Path("getXml")
 @GET
 @Produces(value=MediaType.APPLICATION_XML)
     public TestBean getXml(){
     return new TestBean("a", 26, 62);
     }
 
@Path("getJson")
 @GET
 @Produces(value=MediaType.APPLICATION_JSON)
     public TestBean getJson(){
     return new TestBean("a", 26, 62);
      }
 }


6.相关bean,代码清单:

package com.toplucky;
 
import javax.xml.bind.annotation.XmlRootElement;
 
 
 
@XmlRootElement
 
public class TestBean {
 
    public String a;
 
    public int b;
 
    public long c;
 
    public TestBean() {
 
    }
 
    public TestBean(String a, int b, long c) {
 
        this.a = a;
 
        this.b = b;
 
        this.c = c;
 
    }
 
    public String getA() {
 
        return a;
 
    }
 
    public int getB() {
 
        return b;
 
    }
 
    public long getC() {
 
        return c;
 
    }
 
    @Override
 
    public boolean equals(Object o) {
 
        if (this == o) return true;
 
        if (o == null || getClass() != o.getClass()) return false;
 
        TestBean that = (TestBean) o;
 
        if (b != that.b) return false;
 
        if (c != that.c) return false;
 
        if (a != null ? !a.equals(that.a) : that.a != null) return false;
 
        return true;
 
    }
 
    @Override
 
    public int hashCode() {
 
        int result = a != null ? a.hashCode() : 0;
 
        result = 31 * result + b;
 
        result = 31 * result + (int) (c ^ (c >>> 32));
 
        return result;
 
    }
 
}


到这里测试jersey2.5的准备工作都已经完成,剩下的就是将TestJersey2.5项目部署到GlassFish4.0中并发布,

这里可能需要下载GlassFish for eclipse插件,方便在eclipse工具中快速部署与发布,我这里截一个集成后的图。

        

请求文本数据:http://localhost:8080/TestJersey2.5/jars/test/getText

界面显示结果:hello lucky


请求xml数据:http://localhost:8080/TestJersey2.5/jars/test/getXml

界面显示结果:

<testBean>
<a>a</a>
<b>26</b>
<c>62</c>
</testBean>
界面显示结果:{"a":"a","b":26,"c":62}

说明:如果请求的只是文本、xml数据,那么应用服务器可以选择tomcat,jdk版本也可以用jdk6。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值