千家信息网

Jersey是什么

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍"Jersey是什么",在日常操作中,相信很多人在Jersey是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Jersey是什么"的疑惑有所帮助!接
千家信息网最后更新 2025年12月01日Jersey是什么

这篇文章主要介绍"Jersey是什么",在日常操作中,相信很多人在Jersey是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Jersey是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Jersey是个restfull 框架 类似于springmvc

服务端

maven

                                                                        4.0.0        JERSEY_SERVER        JERSEY_SERVER        1.0                                                com.sun.jersey                        jersey-server                        1.18                                                        com.sun.jersey                        jersey-grizzly2                        1.18                                                                                                        org.apache.maven.plugins                                maven-shade-plugin                                2.3                                                                                                                        package                                                                                                        shade                                                                                                                                                                                                                                                                                                                                                                        com.sean.MyResource                                                                                                                                                                                                                                                                                                

代码

    package com.sean;        import java.io.IOException;        import java.net.URI;        import java.util.Iterator;        import javax.ws.rs.Consumes;        import javax.ws.rs.DefaultValue;        import javax.ws.rs.GET;        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.Context;        import javax.ws.rs.core.HttpHeaders;        import javax.ws.rs.core.MediaType;        import javax.ws.rs.core.MultivaluedMap;        import javax.ws.rs.core.Request;        import javax.ws.rs.core.UriBuilder;        import javax.ws.rs.core.UriInfo;        import org.glassfish.grizzly.http.server.HttpServer;        import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory;        import com.sun.jersey.api.core.PackagesResourceConfig;        import com.sun.jersey.api.core.ResourceConfig;        import com.sun.jersey.spi.resource.Singleton;                @Singleton                @Path("service")                public class MyResource {                        @Path("{sub_path:[a-zA-Z0-9]*}")                        @GET                        @Consumes({MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON})                        @Produces(MediaType.TEXT_PLAIN)                        public String getResourceName(                                        @PathParam("sub_path") String resourceName,                                        @DefaultValue("Just a test!") @QueryParam("desc") String description,                                        @Context Request request,                                        @Context UriInfo uriInfo,                                        @Context HttpHeaders httpHeader) {                                System.out.println(this.hashCode());        //              将HTTP请求打印出来                                System.out.println("****** HTTP request ******");                                StringBuilder strBuilder = new StringBuilder();                                strBuilder.append(request.getMethod() + " ");                                strBuilder.append(uriInfo.getRequestUri().toString() + " ");                                strBuilder.append("HTTP/1.1[\\r\\n]");                                System.out.println(strBuilder.toString());                                MultivaluedMap headers = httpHeader.getRequestHeaders();                                Iterator iterator = headers.keySet().iterator();                                while(iterator.hasNext()){                                        String headName = iterator.next();                                        System.out.println(headName + ":" + headers.get(headName) + "[\\r\\n]");                                }                                System.out.println("[\\r\\n]");                                String responseStr =resourceName + "[" + description + "]";                                return responseStr;                        }                        public static void main(String[] args) {                                URI uri = UriBuilder.fromUri("http://127.0.0.1").port(10000).build();                                ResourceConfig rc = new PackagesResourceConfig("com.sean");                                try {                                        HttpServer server = GrizzlyServerFactory.createHttpServer(uri, rc);                                        server.start();                                } catch (IllegalArgumentException e) {                                        e.printStackTrace();                                } catch (NullPointerException e) {                                        e.printStackTrace();                                } catch (IOException e) {                                        e.printStackTrace();                                }                                try {                                        Thread.sleep(1000*1000);                                } catch (InterruptedException e) {                                        e.printStackTrace();                                }                        }                }

客户端

maven

                                                                        4.0.0        JERSEY_CLIENT        JERSEY_CLIENT        1.0                        UTF-8                UTF-8                1.8                1.8                1.8                                                        com.sun.jersey                        jersey-client                        1.18                                                        com.sun.jersey                        jersey-grizzly2                        1.18                                                                                                        org.apache.maven.plugins                                maven-shade-plugin                                2.3                                                                                                                        package                                                                                                        shade                                                                                                                                                                                                                                                                                                                                                                        com.sean.JerseyClient                                                                                                                                                                                                                                                                                                

代码

package com.sean;import java.net.URI;import java.util.Iterator;import javax.ws.rs.core.MediaType;import javax.ws.rs.core.MultivaluedMap;import javax.ws.rs.core.UriBuilder;import com.sun.jersey.api.client.Client;import com.sun.jersey.api.client.ClientResponse;import com.sun.jersey.api.client.WebResource;import com.sun.jersey.api.client.config.ClientConfig;import com.sun.jersey.api.client.config.DefaultClientConfig;public class JerseyClient {        public static void main(String[] args) {//              要使用Jersey Client API,必须首先创建Client的实例//              有以下两种创建Client实例的方式//     方式一                ClientConfig cc = new DefaultClientConfig();                cc.getProperties().put(ClientConfig.PROPERTY_CONNECT_TIMEOUT, 10*1000);//          Client实例很消耗系统资源,需要重用//          创建web资源,创建请求,接受响应都是线程安全的//          所以Client实例和WebResource实例可以在多个线程间安全的共享                Client client = Client.create(cc);//          方式二//          Client client = Client.create();//          client.setConnectTimeout(10*1000);//          client.getProperties().put(ClientConfig.PROPERTY_CONNECT_TIMEOUT, 10*1000);//          WebResource将会继承Client中timeout的配置//        WebResource resource = client.resource("http://127.0.0.1:10000/service/sean?desc=description");////        String str = resource//                .accept(MediaType.TEXT_PLAIN)//                .type(MediaType.TEXT_PLAIN)//                .get(String.class);//        System.out.println("String:" + str);                URI uri = UriBuilder.fromUri("http://127.0.0.1/service/sean").port(10000)                                .queryParam("desc", "description").build();                WebResource resource = client.resource(uri);                //header方法可用来添加HTTP头                ClientResponse response = resource.header("auth", "123456")                                .accept(MediaType.TEXT_PLAIN)                                .type(MediaType.TEXT_PLAIN)                                .get(ClientResponse.class);//          将HTTP响应打印出来                System.out.println("****** HTTP response ******");                StringBuilder strBuilder = new StringBuilder();                strBuilder.append("HTTP/1.1 ");                strBuilder.append(response.getStatus() + " ");                strBuilder.append(response.getStatusInfo() + "[\\r\\n]");                System.out.println(strBuilder.toString());                MultivaluedMap headers = response.getHeaders();                Iterator iterator = headers.keySet().iterator();                while(iterator.hasNext()){                        String headName = iterator.next();                        System.out.println(headName + ":" + headers.get(headName) + "[\\r\\n]");                }                System.out.println("[\\r\\n]");                System.out.println(response.getEntity(String.class) + "[\\r\\n]");        }}

到此,关于"Jersey是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0