Jersery——RESTful Web Services in Java,RESTful服务,Jersey+Spring实现REST服务调用

//jersery官方文档地址:https://jersey.java.net/documentation/latest/index.html
REST 在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一。
REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集。RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务。通常,RESTful Web 服务应该定义以下方面:
Web 服务的基/根 URI,比如 http://host//resources。
支持 MIME 类型的响应数据,包括 JSON/XML/ATOM 等等。
服务支持的操作集合(例如 POST、GET、PUT 或 DELETE)。

@Path:定义资源基 URI。由上下文根和主机名组成,资源标识符类似于 http://localhost:8080/Jersey/rest/hello。
@GET:这意味着以下方法可以响应 HTTP GET 方法。
@Produces:以纯文本方式定义响应内容 MIME 类型。
@Context: 使用该注释注入上下文对象,比如 Request、Response、 UriInfo、ServletContext 等。
在 web.xml 文件中定义 Jersey servlet 

jar包官方下载地址:https://maven.java.net/content/repositories/releases/com/sun/jersey/contribs/jersey-spring/

所需jar包;

Jersery——RESTful Web Services in Java,RESTful服务,Jersey+Spring实现REST服务调用_第1张图片

 

java代码:

 

@Path("/test")
public class RoundrobinAction {

	 @POST
	 @Path("/example")
	 @Produces("application/json;charset=UTF-8")
	 @Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML,MediaType.TEXT_HTML})
	 public String Example(@Context HttpServletRequest request){
		 String ret="";
		 try {
			 ServletInputStream inputStream=request.getInputStream();
			 StringBuilder builder=new StringBuilder();
			 byte[] buff=new byte[1024];
			 int len=-1;
			 while((len = inputStream.read(buff))!= -1){
				 builder.append(new String(buff,0,len,"UTF-8"));
			 }
			 //参数json
			 String parameterStr = builder.toString();
			 //打印参数
			 System.out.println(parameterStr);
			 ret="通讯成功!";
		 } catch (IOException e) {
			 e.printStackTrace();
		 }
		 return ret;
	 }
}

 

 

 

web.xml配置:

	restfulServlet_test
		
			com.sun.jersey.spi.spring.container.servlet.SpringServlet
		
		
			
				com.sun.jersey.config.property.packages
			
			com.ckhb.Roundrobin
		
		
			
				com.sun.jersey.api.json.POJOMappingFeature
			
			true
		
		1
	
	
		restfulServlet_test
		/jerseyExm/*
	


请求地址为:http://127.0.0.1:8080/项目名称/jerseyExm/test/example

 

 

你可能感兴趣的:(java)