JERSEY中文翻译(第一章、Getting Started、1.1.7)
最近发现jersey特别流行,但是中文资料非常少,深感没有资料的痛苦,所以分享一下看到的内容供他人快速入门。
今天翻译第一章、Getting Started。https://jersey.java.net/documentation/1.17/user-guide.html#getting-started
第一章、Getting Started、1.1.7
本章将会告诉你如何使用嵌入式的Grizzly server创建一个Jersey服务,在本章的最后一节也将展现如何使用一段程序来建立一个web应用。
首先它需要依赖jersey的jar包。使用Maven开发,需要设置:jersey-server 和 jersey-grizzly2 两个包,在pom.xml内添加:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-grizzly2</artifactId>
<version>1.17</version>
</dependency>
如果你需要依赖于jersey的快照版本,那么在pom.xml添加:
<repository>
<id>snapshot-repository.java.net</id>
<name>Java.net Snapshot Repository for Maven</name>
<url>https://maven.java.net/content/repositories/snapshots/</url>
<layout>default</layout>
</repository>
1.1 创建一个资源
创建一个java文件
1 // The Java class will be hosted at the URI path "/helloworld"
2 @Path("/helloworld")
3 public class HelloWorldResource {
4
5 // The Java method will process HTTP GET requests
6 @GET
7 // The Java method will produce content identified by the MIME Media
8 // type "text/plain"
9 @Produces("text/plain")
10 public String getClichedMessage() {
11 // Return some cliched textual content
12 return "Hello World";
13 }
14 }
这个一个简单的web应用,URI路径是"/helloword"(第二行);它支持HTTP的GET方式请求(第六行);返回的相应头是"text/plain"(第九行);返回内容是"Hello World"(第十二行)
1.2 部署一个WEB应用
这个程序部署在Grizzle容器内。在你的工程内创建一个java程序
1 import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory;
2 import com.sun.jersey.api.core.DefaultResourceConfig;
3 import com.sun.jersey.api.core.PackagesResourceConfig;
4 import com.sun.jersey.api.core.ResourceConfig;
5 import org.glassfish.grizzly.http.server.HttpServer;
6
7 import javax.ws.rs.core.UriBuilder;
8 import java.io.IOException;
9 import java.net.URI;
10 import java.util.HashMap;
11 import java.util.Map;
12 import java.util.Map.Entry;
13
14 public class Main {
15
16 private static URI getBaseURI() {
17 return UriBuilder.fromUri("http://localhost/").port(9998).build();
18 }
19
20 public static final URI BASE_URI = getBaseURI();
21
22 protected static HttpServer startServer() throws IOException {
23 System.out.println("Starting grizzly...");
24 ResourceConfig rc = new PackagesResourceConfig("com.sun.jersey.samples.helloworld.resources");
25 return GrizzlyServerFactory.createHttpServer(BASE_URI, rc);
26 }
27
28 public static void main(String[] args) throws IOException {
29 HttpServer httpServer = startServer();
30 System.out.println(String.format("Jersey app started with WADL available at "
31 + "%sapplication.wadl\nTry out %shelloworld\nHit enter to stop it...",
32 BASE_URI, BASE_URI));
33 System.in.read();
34 httpServer.stop();
35 }
36 }
用这个主函数,承接Grizzle容器,实现HelloWorldResource。
在24行,设置了当Jersey去哪里查找部署的资源class
在25行,设置了基本的路径和端口号"localhost:9998",并且返回一个Grizzle的HttpServer。全部的Hello World资源路径是"http://localhost:9998/helloworld"
1.3 测试这个资源
直接访问"http://localhost:9998/helloworld"或者curl "localhost:9998/helloworld"
1.4 事例
创建一个java web程序,HelloWorld-WebApp
JERSEY中文翻译(第一章、Getting Started、1.1.7)的更多相关文章
- JERSEY中文翻译(第一章、Getting Started、2.2)
		前言 这是jersey2.2的用户向导,我们会尽力维护它的更新并且也会增加新的章节.当阅读本用户指南的时候,也要参阅Jersey API 文档,额外的信息补充JERSEY的新特性和API 如果你想要为 ... 
- Learning Scrapy 中文版翻译  第一章
		第一章:scrapy介绍 欢迎来到scrapy之旅.通过这本书,我们将帮助你从只会一点或者零基础的Scrapy初学者达到熟练使用这个强大的框架在互联网或者其他资源抓取海量的数据.在这一章节,我们将给你 ... 
- Gradle2.0用户指南翻译——第一章. 介绍
		翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ... 
- ActiveMQ 翻译第一章 1.2小节(松耦合与ActiveMQ和何时使用ActiveMQ)
		第一章 1.2.1小节 松耦合与ActiveMQ ActiveMQ为应用程序架构提供送耦合实现组件.松耦合经常被引入到系统架构中,来减轻紧耦合的远程工程调用的使用.松耦合的设计是异步的,来自其他系统 ... 
- JERSEY中文翻译(第三章、JAX-RS Application, Resources and Sub-Resources)
		JAX-RS Application Resource and Sub-Resource 本章要介绍的是JAX-RS的核心概念——Resouce.Sub-Resource JAX-RS的2.0的jav ... 
- JERSEY中文翻译(第三章、模块和依赖)
		Chapter 2 Modules and Dependencencies 2.1 Java SE 兼容 所有的Jersey组建都是基于Java6开发的,所以你的Java必须是Java6以上的版本才能 ... 
- Java 7 Concurrency Cookbook 翻译 第一章 线程管理之一
		一.简介 在计算机的世界里,当我们谈论并发时,我们指的是一系列的任务同时运行于一个计算机中.这里说的同时运行,在计算机拥有多于一个处理器或者是一个多核处理器的时候才是真正的同时,在计算机只拥有单核处理 ... 
- Java 7 Concurrency Cookbook 翻译 第一章 线程管理之六
		十一.处理线程组中的未控制异常 每种编程语言一个很重要的特性就是其所提供的用来处理程序中错误情况的机制.Java语言和其他的现代语言一样,是提供了异常机制来处理对象程序中的错误.Java提供了很多的类 ... 
- Java 7 Concurrency Cookbook 翻译 第一章 线程管理之五
		九.使用线程本地变量 一个并发程序的最关键特征就是共享数据.这个特性在那些继承了 Thread 类或者 实现了 Runnable 接口的对象上显得更加重要. 如果你创建一个实现了 Runnable 接 ... 
随机推荐
- BI 可视化
			1. Blackbird: Open Source JavaScript Logging Utility Blackbird 是一款非常酷的 JavaScript 调试工具,带有一个漂亮的界面显示和过 ... 
- 神盾局特工第一季/全集Agents Of SHIELD迅雷下载
			神盾局特工 Agents of S.H.I.E.L.D. (2013) 本季看点:如果你熟悉Marvel漫画或者看过创造电影票房记录的<复仇者联盟>(The Avengers),你应该对「 ... 
- CountDownLatch使用场景及分析
			JDk1.5提供了一个非常有用的包,Concurrent包,这个包主要用来操作一些并发操作,提供一些并发类,可以方便在项目当中傻瓜式应用. JDK1.5以前,使用并发操作,都是通过Thread,Run ... 
- Vim 常用操作、查找和替换
			这篇文章来详细介绍 Vim 中查找相关的设置和使用方法. 包括查找与替换.查找光标所在词.高亮前景/背景色.切换高亮状态.大小写敏感查找等. 查找 在normal模式下按下/即可进入查找模式,输入要查 ... 
- Python 的 Flask 框架安装应用
			Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱採用 Werkzeug ,模板引擎则使用 Jinja2 ,使用 BSD 授权. Flask也被称为 " ... 
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
			springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ... 
- OpenCV教程(46) 快速特征检测
			在计算harris特征角时候,我们要在两个方向计算梯度,计算代价有点大.在paper The article by E. Rosten and T. Drummond, Machine lea ... 
- Create an Android library
			官方文档 创建 Android 库 [Create an Android library] Android 库在结构上与 Android app module 相同.它可以提供构建应用所需的一切内容, ... 
- 微信公众号网页授权获取用户openid
			最近一个项目是在微信公众号内二次开发,涉及到微信公众号支付,根据文档要求想要支付就必须要获取到用户的openid. 这是微信官方文档https://mp.weixin.qq.com/wiki?t=re ... 
- 学 Win32 汇编[34] - 宏汇编(1)
			从接触 C 语言时, 我就不大喜欢宏; 但为了看懂别人的代码也不得不去了解. 宏可定义在源程序的任意位置, 但一般放在 .data 前面.有些简单的宏可以用 equ.textequ 或 = 来代替, ... 
