这里介绍一个jersey与jetty整合开发restful应用的知识。将过去和羁绊全部丢弃,不要吝惜那为了梦想流下的泪水。
jersey与jetty的整合
一、创建一个maven项目,pom.xml的内容如下
4.0.0 com.linux.huhx SpringLearn2 1.0-SNAPSHOT 8.1.19.v20160209 com.sun.jersey jersey-servlet 1.19.4 org.eclipse.jetty.aggregate jetty-all-server ${jetty-version} com.sun.jersey jersey-json 1.19.4 junit junit 4.12 test
二、创建一个web容器,在main方法启动jetty
package com.linux.huhx.main;import com.sun.jersey.spi.container.servlet.ServletContainer;import org.eclipse.jetty.server.Server;import org.eclipse.jetty.servlet.ServletContextHandler;import org.eclipse.jetty.servlet.ServletHolder;public class HttpServer { public static void main(String[] args) throws Exception { Server server = new Server(8090); ServletHolder servlet = new ServletHolder(ServletContainer.class); servlet.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig"); servlet.setInitParameter("com.sun.jersey.config.property.packages", "com.linux.huhx.business"); servlet.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true"); ServletContextHandler handler = new ServletContextHandler(ServletContextHandler.SESSIONS); handler.setContextPath("/"); handler.addServlet(servlet, "/*"); server.setHandler(handler); server.start(); System.out.println("start...in 82"); }}
三、定义restful网格的api接口
package com.linux.huhx.business.action;import javax.ws.rs.GET;import javax.ws.rs.POST;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.MediaType;import java.util.HashMap;import java.util.Map;@Path("hello")public class HelloHuhxResource { /** * 简单的get请求,返回json数据 * @return */ @GET @Path("huhx") @Produces(MediaType.APPLICATION_JSON) public MapsayHelloHuhx() { Map map = new HashMap<>(); map.put("returnCode", "000000"); map.put("returnMsg", "I love you"); return map; } /** * json的请求和json数据的返回 * @param paramMap * @return */ @POST @Path("linux") @Produces(MediaType.APPLICATION_JSON) public Map sayHelloLinux(Map paramMap) { Map map = new HashMap<>(); map.put("username", paramMap.get("username")); map.put("password", paramMap.get("password")); return map; }}
四、用浏览器和postman测试的结果如下
- 访问:http://localhost:8090/hello/huhx
返回结果:{"returnCode":"000000","returnMsg":"I love you"}
- 访问:http://localhost:8090/hello/linux 参数:{ "username": "linux", "password": "12345"}
返回结果:{ "password": "12345", "username": "linux"}
友情链接
- 关于jersey的文档:
- 关于java EE规范的restful: