jersey创建restful服务及调用_使用Jetty与Jersey建立Restful API Service

一、关于Jetty相关知识

1、 什么是Jetty

Jetty是一个开源HTTP服务器和Servlet殷勤,可以为JSP和Servlet提供Runtime。

2、Jetty 特性

Jetty是异步的,支持更高的并发量

Jetty更加灵活轻量,更容易定制,资源利用率高

Jetty 默认采用NIO你续保费,能更好的支持长连接

集成简单,只要集成Jetty,应用就可以快速支持Http服务

3 和Tomcat相比

比Tomcat架构更加简单,jetty所有组件基于Handler实现

Jetty更容易扩展第三方构架

更加轻量,节省内存

但是tomcat更加稳定成熟,在企业级中占有率很大

4 Jetty应用场景

默认使用NIO,所以在轻量级、保持长连接的场景还是很有用处。如何客户聊天

4.1 AboutNIO

5 Jetty 原理

Jetty的核心组件有Server和Connector两个组件构成

Server是基于Handler容器工作,类似Tomcat的Container容器工作

Connector负责接收客户端的链接请求,并将请求分配给一个处理队列去执行

Jetty是围绕Server类来构建,Server类继承了Handler,关联了Connector和Container

Jetty的Server的扩展主要是实现一个个Handler,并将Handler加入到Server中,Server中提供了调用Handler的访问规则

5 Jetty启动过程

入口是Server类,Server 类启动完成就代表Jetty能提供服务了

Server首先启动设置到自身的Handler,然后启动此handler链上的其他Handler,最后启动JMX的Mbean,启动Connector,打开请求端口

6、jetty接收请求的步骤

jetty默认是基于http协议的

(1)Jetty 在启动时将会创建 BIO 的工作环境,它会创建 HttpConnection 类用来解析和封装 HTTP1.1 的协议

(2)创建一个队列线程池,用于处理每个建立连接产生的任务

(3)创建 ServerSocket,用于准备接受客户端的 socket 请求

(3)创建一个或多个监听线程,用来监听访问端口是否有连接进来

(4)当 ServerSocket 被执行时,HttpConnection 将被调用,它固定了如何将请求传递到 servlet 容器里,又如何将请求最终路由到目的 servlet

(5)当 Jetty 接受到一个请求时,Jetty 就把这个请求交给在 Server 中注册的 Handler 去执行

(6)Server 的 handle 的方法将请求代理给 ContextHandler 的 handle 方法,ContextHandler 又调用 HelloHandler 的 handle 方法

二、使用Jetty + Jersey搭建Restful API Web Service

//create server with port

Server server = new Server(8080);

//

ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);

context.setContextPath("/");

//add handler

server.setHandler(context);

ServletHolder holder1 = context.addServlet(ServletContainer.class, "/thresholdmgmt/0.8/*");

// Tells the Jersey Servlet which REST service/class to load.

holder1.setInitParameter(

"jersey.config.server.provider.packages",

"com.ibm.perfmgmt.thresholdservice.restapi"

);

try {

server.start();

server.join();

} catch (Exception e) {

logger.info("Failed to start application: " + e);

} finally {

server.destroy();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值