/**
* @项目名称: 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);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库jersey框架service方法实体参数传入在线全文阅读。
相关推荐: