千家信息网

Jersey是什么

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍"Jersey是什么",在日常操作中,相信很多人在Jersey是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Jersey是什么"的疑惑有所帮助!接
千家信息网最后更新 2025年02月03日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是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

实例 学习 方式 安全 代码 方法 更多 线程 资源 UTF-8 帮助 实用 接下来 多个 客户 客户端 文章 框架 理论 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技领域下的业主大会 电脑网络安全证书有问题什么意思 网络安全电教片 网络安全方面人才的需要 软件开发电脑性能 安卓手机怎么设置软件开发者 信息网络安全掌握 c 实体类保存到数据库 郑州软件开发行业排行 重返帝国官方服务器怎么登录 乡村文化资源数据库 4399游戏服务器是渠道服吗 广告机发布软件开发价格 汽车导航数据库不可用怎么办 数据库检索语句关键字 oracle数据库的特点 重庆大足生鲜配送软件开发 江苏工程管理软件开发平台 阿里云邮箱收发服务器 网络安全展播微视频 洛阳软件开发有限公司怎么样 网络安全电教片 做软件开发销售从哪里找客户 来宾塘猿网络技术有限公司 部落服务器推荐 nga 探索敏捷软件开发组织的知识管理 怀旧服服务器盗贼怎么赚钱 安徽电力软件开发公司 软件开发培训受人欢迎 军训网络安全讲座作文
0