javascript代码实例教程-Jersey构建REST服务实战

发布时间:2019-02-11 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-Jersey构建REST服务实战脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 

由于参与移动项目,需要移动终端和服务端传递数据,经过技对比分析,觉得基于REST模式的Web服务比较简洁易用,于是采取了Jersey开发, 一个Java规范下REST风格Web Service开发框架。最初选择的是Jersey1.8,后来由于运行环境的升级,导致Jersey也要升级到最新版本2.5.1。由于jersey2.x 版本实现的是JAX-RS 2.0规范,与 jersey1.x 相比有很大的改变,JSON转换也有不同。现把实现过程整理下来,供有需要的朋友参考!

一:环境介绍

(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下。

javascript代码实例教程-Jersey构建REST服务实战

(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@H_304_213@
cn.com.vs.RestApplication

1


mobile
/rest/*


index.html


(8)在 Tomcat7 中部署运行,查看发布效果:

获取 文本数据:

javascript代码实例教程-Jersey构建REST服务实战

获取XML数据:

javascript代码实例教程-Jersey构建REST服务实战

获取JSON数据:https://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下:

javascript代码实例教程-Jersey构建REST服务实战

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

javascript代码实例教程-Jersey构建REST服务实战




觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-Jersey构建REST服务实战全部内容,希望文章能够帮你解决javascript代码实例教程-Jersey构建REST服务实战所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。