jetty容器介绍
Jetty是一个开源的servlet容器,它是基于java的WEB容器。在各个框架中,我们经常会使用jetty或者Tomcat容器。jetty容器相较于Tomcat容器更轻量级,Tomcat扩展了大量JEE特性以满足企业级应用的需求。但是一般项目里这些特性都不会被使用,因此这部分特性反而浪费资源,尤其是在分布式环境中。因此jetty容器在处理高并发的问题时更为高效。
jetty容器的安装以及使用
jetty容器的版本目前已经有很多。笔者目前接触过jetty7和jetty9的版本。两者的使用方法上大同小异,但是也还是有一些不同。此差异后续简单提下。下面介绍下jetty容器的安装过程,以jetty7.6.17.tar.gz压缩包(可在官网下载)为例
- 上传jetty7.6.17.tar.gz上传到服务器上
- 解压 tar -zxvf jetty7.6.17.tar.gz
- 进入解压后的文件,进入bin目录下
- 配置jetty.sh文件
将JETTY_HOME和JAVA_OPTIONS的注释打开
JETTY_HOME=/app/jetty/jettyTest(jetty的安装路径)
JAVA_OPTIONS=”-Xdebug -Xrunjdwp:transport=dt_socket,address=10008,server=y,suspend=n -server -Xmx2048m -Xms2048m -Xmn1024m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m”
在这段配置中
-Xdebug -Xrunjdwp:transport=dt_socket,address=10008,server=y,suspend=n
这个配置是为了能够在eclipse中进行代码的调试。debug端口为10008。
-Xmx2048m -Xms2048m -Xmn1024m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m
此配置为这个jetty容器设置jvm的启动内存。 - 设置jetty端口
进入jetty的etc下,打开jetty.xml。如下图所示
这里的9008端口就是jetty的端口(每个jetty模块的端口都独一无二) 设置jetty的日志路径
打开jetty/etc/目录下的jetty-logging.xml文件,如下图
图中就是日志路径,可以自己配置。模块的包放在webapps。
jetty命令
启动命令:进入bin目录下,执行 ./jetty.sh start
停止命令:进入bin目录下,执行 ./jetty.sh stop
重启命令:进入bin目录下,执行 ./jetty.sh restart查看进程
ps aux | grep jettyTestjetty7和jetty9的区别
jetty9和jetty7的jetty端口配置不同
在jetty9中,jetty端口配置在/jetty/start.ini中如果webapps目录下有多个war包,那么用以下方法能指定执行哪个war包
1.在jetty/contexts目录下创建一个testapp.xml文件
在里面写入
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/testapp.war</Set>
</Configure>