jersey框架service方法实体参数传入

2019-02-15 23:23

/**

* @项目名称: jerseyDemo演示jersey服务端方法传入自定义类型参数 * @创建人:Longzhe * @author: Longzhe

* @创建时间:2013年6月5日15:00:20 * @version 1.0 */

前言

以前用jersey,服务端方法的参数一般都是简单类型,像下面这个:

今天同事有个服务端方法,需要传入实体,我勒个擦,感觉有点奇怪,但还是可以做的。 下面将简单写下jersey服务端自定义类型参数的传递。

需要注意的地方

1. 自定义类名上,需要加注解:@XmlRootElement。经常有人忘记这个细节。

2. webservice类的方法,可以加@Consumes(MediaType.APPLICATION_JSON),用于规定传入

实体的格式。

3. webservice类的方法,参数列表里,自定义类型的参数前面,不需要加任何注解。

关键代码截图

1. 实体

2. Webservice方法

3. 客户端调用方法

具体代码

亲测可用。导包,Web.xml神马的就不写了,直接上几个类。

实体类:

package person.jason.jersey.service.entity;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement publicclass OAUser {

private String name; privateintage;

/*---------- getter & setter ----------*/ public String getName() { }

returnname;

}

publicvoid setName(String name) { }

publicint getAge() { }

publicvoid setAge(int age) { }

this.age = age; returnage;

this.name = name;

服务类:

package person.jason.jersey.service;

import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType;

import person.jason.jersey.service.entity.OAUser; /**

* @项目名称: jerseyDemo * @创建人:Longzhe * @author: Longzhe

* @创建时间:2013年6月5日11:09:45 * @version 1.0 */

@Path(\) publicclass OAUserWebService {

/**

* @功能:web service接口测试 * @see

* @author Longzhe * @return \

* @创建时间:2013年6月5日14:49:56 */ @GET

@Path(\)

http://localhost:8080/jerseyDemo/rest/OAUserWebService/test/{name}

}

public String test(@PathParam(\) String name){ } /**

* @功能:传入基本类型参数返回user对象 * @see

* @author Longzhe * @param * @return

* @创建时间:2013年6月5日11:12:36 */ @GET

@Path(\)

@Produces({MediaType.APPLICATION_JSON})

public OAUser outUser(@QueryParam(\)int age, } /**

* @功能:传入自定义类型参数返回字符串 * @see

* @author Longzhe * @param * @return

* @创建时间:2013年6月5日11:12:36 */ @POST

@Path(\)

@Consumes(MediaType.APPLICATION_JSON) public String inUser(OAUser user){ }

System.out.println(\ + user.getName()); return\;

@QueryParam(\)String name){

OAUser user = new OAUser(); user.setAge(age); user.setName(name); return user;

System.out.println(\ + name); return\ + name;

http://localhost:8080/jerseyDemo/rest/OAUserWebService/outUser

http://localhost:8080/jerseyDemo/rest/OAUserWebService/inUser

客户端类:

package person.jason.jersey.service;

import java.net.URI;

import java.net.URISyntaxException;

import javax.ws.rs.core.MediaType;

import person.jason.jersey.service.entity.OAUser;

import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.core.util.MultivaluedMapImpl;

publicclass TestOAUserWebService { }

static String SAY = static String USER =

publicstaticvoid main(String[] asdf) throws URISyntaxException{ }

publicstaticvoid testInUser() throws URISyntaxException{ }

OAUser user = new OAUser(); user.setName(\);

URI u = new URI(USER + \);

MultivaluedMapImpl params = new MultivaluedMapImpl(); params.add(\, user);

Client client = Client.create();

WebResource resource = client.resource(u); String response = resource.entity(user, System.out.println(response); System.out.println(\);

TestOAUserWebService.testInUser(); System.out.println(\);

\; \;

MediaType.APPLICATION_JSON).post(String.class);


jersey框架service方法实体参数传入.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:四川省2017年上半年金融学第三部分:通货膨胀及其治理考试试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: