Jetty启动配置解析
1. jetty概述
维基百科:Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器。
Jetty Server是一个Connector集合和一个Handler集合间的管道,Connector用于接收HTTP连接,Handler服务来自连接的请求并作出响应,Jetty Server使用来自一个线程池的线程来处理这些工作。
2. spring-jetty启动配置
jetty可以通过配置文件的方式启动,按照spring加载配置文件的方式即可:
ctx = new ClassPathXmlApplicationContext("classpath:spring-jetty.xml");
jetty.xml主要完成Server类中ThreadPool、连接器Connector、Handler等主要组件的配置。
2.1 Server类
<bean id="Server" class="org.eclipse.jetty.server.Server" init-method="start" destroy-method="stop">
Server类作为jetty的入口,其初始化方法是start,销毁方法是stop。如果以java代码形式也可以,如下:
public static void main(String[] args) throws Exception {
startJetty(PORT);
}
private static void startJetty(int port) throws Exception {
LOGGER.debug("Starting server at port {}", port);
Server server = new Server(port);
//配置, 略
...
addRuntimeShutdownHook(server);
//启动
server.start();
logger.info("Server started at port {}", port);
server.join();
}
//系统关闭销毁操作
private static void addRuntimeShutdownHook(final Server server) {
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
if (server.isStarted()) {
server.setStopAtShutdown(true);
try {
// 销毁
server.stop();
} catch (Exception e) {
System.out.println("Error while stopping jetty server: " + e.getMessage());
}
}
}));
}
2.2 Connector
Connector,它负责接受客户端的连接请求,基于NIO方式。
2.3 Handler
handler链,为Server所管理,请求的具体执行由链中的handler负责。
Jetty启动配置解析的更多相关文章
- Jetty:配置安全
用${jetty.home}和${jetty.base}配置安全 Jetty 9.1中: 1)${jetty.home}是jetty公布(二进制)的文件夹路径: 2)${jetty.base}是用 ...
- 一,Jetty启动
一,Jetty安装 从官网download.eclipse.org/jetty/ 下载需要的版本,在指定目录解压即可,下面用$JETTY_HOME表示Jetty的解压目录,也就是安装目录.我用的版本是 ...
- 【推荐】CentOS安装Tomcat-7.0.57+启动配置+安全配置+性能配置
注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Tomcat之前,请确保已经安装了JDK-1.7环境,具体见<CentOS安装JDK-1.7>. ...
- 【技术贴】第二篇 :解决使用maven jetty启动后无法加载修改过后的静态资源
之前写过第一篇:[技术贴]解决使用maven jetty启动后无法加载修改过后的静态资源 一直用着挺舒服的,直到今天,出现了又不能修改静态js,jsp等资源的现象.很是苦闷. 经过调错处理之后,发现是 ...
- Linux下jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案
Linux下的jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案问题linux的jetty下发布程序后再启动jetty服务时 ...
- nsq源码阅读笔记之nsqd(一)——nsqd的配置解析和初始化
配置解析 nsqd的主函数位于apps/nsqd.go中的main函数 首先main函数调用nsqFlagset和Parse进行命令行参数集初始化, 然后判断version参数是否存在,若存在,则打印 ...
- IDEA中使用中jetty启动java项目(非springboot)
1.安装maven helper插件,略 2.项目pom.xml文件中添加jetty插件配置 <build> <plugins> <plugin> <grou ...
- 初识nginx——配置解析篇
一.nginx的介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 二.nginx的配置 nginx的 ...
- Spring Boot干货系列:(三)启动原理解析
Spring Boot干货系列:(三)启动原理解析 2017-03-13 嘟嘟MD 嘟爷java超神学堂 前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说 ...
随机推荐
- P1820 寻找AP数
P1820 寻找AP数两个性质,分解质因数后,连续,且指数递减,dfs就完了 #include <iostream> #include <cstdio> #include &l ...
- 一道Oracle子查询小练习
一道Oracle子查询小练习 昨天晚上躺在床上看Oracle(最近在学习这个),室友说出个题目让我试试.题目如下: 有如下表结构,请选择出成绩为前三名的人的信息(如果成绩相同,则算并列),表名为t ...
- SpringCloudConfig
方便服务配置文件统一管理,实时更新 组成 在spring cloud config组件中,分两个角色,一是config server,二是config client Config Server是一个可 ...
- thinkphp 伪静态
URL伪静态通常是为了满足更好的SEO效果,ThinkPHP支持伪静态URL设置,可以通过设置URL_HTML_SUFFIX参数随意在URL的最后增加你想要的静态后缀,而不会影响当前操作的正常执行.例 ...
- Vue Virtual Dom 和 Diff原理(面试必备) 极简版
我又来了,这是Vue面试三板斧的最后一招,当然也是极其简单了,先说Virtual Dom,来一句概念: 用js来模拟DOM中的节点.传说中的虚拟DOM. 再来一张图: 是不是一下子秒懂 没懂再来一张 ...
- myeclipse CTRL+1功能
有时候,在myeclipse或者eclipse中自动编译代码有错误,我们把鼠标放在错误一行能够自动显示出问题原因,但是有时显示问题让人有些匪夷所思,不知所云何物. 此时可以使用<ctrl> ...
- Linq Lambda 中group by多列后count数量的写法
直接上代码: List<Student> ss = new List<Student>(); Student ss1 = , Age = , Name = " }; ...
- System.Drawing.Imaging.ImageFormat.cs
ylbtech-System.Drawing.Imaging.ImageFormat.cs 1.程序集 System.Drawing, Version=4.0.0.0, Culture=neutral ...
- STM32F4X 关于MDK上虚拟串口调试
1. 下载安装VSPD 自行百度安装后,利用VSPD将PC上的两个虚拟串口连接起来.如图我将COM1 和COM2连接起来. a. 点击Addr pair. 可以看到Virtual ports上将两个虚 ...
- 初识OpenCV-Python - 009: 图像梯度
本节学习找到图像的梯度和边界.只要用到的函数为: cv2.Sobel(), cv2.Scharr(), cv2.Laplacian() 1. Laplacian 和 Sobel的对比 import c ...