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()); MultivaluedMapheaders = 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()); MultivaluedMapheaders = 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
探索敏捷软件开发组织的知识管理
怀旧服服务器盗贼怎么赚钱
安徽电力软件开发公司
软件开发培训受人欢迎
军训网络安全讲座作文