springmvc下Jersey 搭建RESTful服务

来源:互联网 发布:java基础入门pdf百度云 编辑:程序博客网 时间:2024/05/16 11:22

1.整合

jersey所需要的开发包下载:https://jersey.java.net/,
解压jaxrs-ri-2.22.1文件,得到以下目录


将解压文件夹lib目录的jar文件复制到项目的WEB-INF/lib目录中,ext目录中的jar包根据自己所需  或者console报错 引入
这是我的项目的lib目录


2.配置

配置web.xml

<!-- REST配置 --><servlet><servlet-name>jerseyServlet</servlet-name><servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param><param-name>javax.ws.rs.Application</param-name><param-value>com.znie.mypro.service.RestApp</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>jerseyServlet</servlet-name><url-pattern>/service/*</url-pattern></servlet-mapping><!-- REST配置 结束 -->

com.znie.mypro.service.RestApp文件  指定服务类所在的包
package com.znie.mypro.service;import javax.ws.rs.ApplicationPath;import org.glassfish.jersey.server.ResourceConfig;@ApplicationPath("/")public class RestApp  extends ResourceConfig{public RestApp(){// 服务类所在的包路径packages("com.znie.mypro.service");}}

3.编写测试

编写hello测试

package com.znie.mypro.service;import java.util.HashMap;import java.util.Map;import javax.ws.rs.Consumes;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.QueryParam;import javax.ws.rs.core.MediaType;import com.alibaba.fastjson.JSON;@Path("/hello")public class HelloService {@GET@Path("/index")@Produces(MediaType.APPLICATION_JSON)public String hello() {Map m = new HashMap();m.put("hello","world");m.put("hello2","world");return JSON.toJSONString(m);}@GET@Path("/post")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)public String post(@QueryParam("test")String test) {Map<String,String> m = new HashMap<String,String>();m.put("test",test);m.put("hello2","world");return JSON.toJSONString(m);}}

main测试

package com.znie.mypro.service;import javax.ws.rs.client.Client;import javax.ws.rs.client.ClientBuilder;import javax.ws.rs.client.Entity;import javax.ws.rs.client.WebTarget;import javax.ws.rs.core.Response;public class HelloClient {public static void main(String[] args) {try {Client client = ClientBuilder.newClient();WebTarget target = client.target("http://localhost:8081/mypro/service/hello").path("/post").queryParam("test", "111");Response res = target.request().accept("application/json").get();if (res.getStatus() != 200) {throw new RuntimeException("Failed : HTTP error code : "+ res.getStatus());}String output = res.readEntity(String.class);System.out.println(res.getStatus() + "\n……Output from Server……");System.out.println(output);} catch (Exception e) {e.printStackTrace();}}}



0 0
原创粉丝点击