参考:

http://www.inter12.org/archives/649


一 简介

挂在eclipse基金会下

java语言编写的实现servlet规范的web容器

支持SPDY, WebSocket, OSGi, JMX, JNDI, JAAS

最新版本是jetty9,必须JDK7支持

目前使用的项目:alibaba japan,b2b activeMq,apache-camel,fisheye,confluence,hadoop (更全可见:http://www.eclipse.org/jetty/powered/)

源码存放地址:https://github.com/eclipse/jetty.project

ps:

挂在eclipse基金会下其他知名开源框架还有 Sphinx(搜索服务器)Hudson(持续集成),Subversive(svn工具),AspectJ(aop框架),hadoop(离线计算)等

二 主要目录结构解析

bin/ — 启动、停止脚本

etc/ — 配置文件目录,不同于tomcat的conf

lib/ — 自身必须加装的包 例如jetty-deploy,jetty-http,jetty-io 等

license-eplv10-aslv20.html

logs/ — 日志目录

notice.html

README.txt

resources/ — jetty的资源文件 ,里面是一些log4j的配置

start.d/

start.ini

start.jar      — jetty 的启动jar包 s示例:java $JAVA_OPTS -Djetty.port=$app_port -jar start.jar $jetty_etc/jetty.xml

VERSION.txt

webapps/ — 包的部署目录

webapps.demo/

三 几个重要的配置文件

3.1 START.INI

当你通过:java -jar start.jar 启动时候,读取的配置来之 $JETTY_HOME/start.ini

具体查看当前使用的配置 通过命令 java -jar start.jar –help 以下就是默认配置

——————————————————————————————-

The current start.ini arguments are:

OPTIONS=Server,websocket,resources,ext

threads.min=10

threads.max=200

threads.timeout=60000

jetty.dump.start=false

jetty.dump.stop=false

etc/jetty.xml

OPTIONS=jmx

etc/jetty-jmx.xml

OPTIONS=jsp

jetty.port=8080

http.timeout=30000

etc/jetty-http.xml

etc/jetty-deploy.xml

OPTIONS=rewrite

etc/jetty-rewrite.xml

etc/jetty-demo.xml

OPTIONS=client

etc/test-realm.xml

OPTIONS=jaas

jaas.login.conf=webapps.demo/test-jaas.d/login.conf

etc/jetty-jaas.xml

OPTIONS=jndi,jndi.demo

OPTIONS=plus

etc/jetty-plus.xml

OPTIONS=annotations

etc/jetty-annotations.xml

etc/jetty-ssl.xml

etc/jetty-https.xml

etc/jetty-demo.xml 中定义了默认启动加载的应用包 在webapps.demo目录 root路径的加载是在ROOT包下

———————————————

/webapps.demo

/etc/webdefault.xml

另外jetty启动的JVM参数配置也在这里 vim start.ini

#===========================================================

# Configure JVM arguments.

# If JVM args are include in an ini file then –exec is needed

# to start a new JVM from start.jar with the extra args.

# If you wish to avoid an extra JVM running, place JVM args

# on the normal command line and do not use –exec

#———————————————————–

# –exec

# -Xmx2000m

# -Xmn512m

# -XX:+UseConcMarkSweepGC

# -XX:ParallelCMSThreads=2

# -XX:+CMSClassUnloadingEnabled

# -XX:+UseCMSCompactAtFullCollection

# -XX:CMSInitiatingOccupancyFraction=80

3.2 JETTY.XML

 

 


 

 


 

 

 

 

 

 false

 


 

 

 

 

 

 


 

 

 https

 

 32768

 8192

 8192

 true

 false

 512


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 true

 5000

 

 


3.3 ETC/JETTY-DEPLOY.XML

定义了 应用加载包的信息

———————————————————————————————————-

org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern

.*/servlet-api-[^/]*\.jar$

/webapps

/etc/webdefault.xml

1

true

/etc/some.properties

–>

namevalue

–>

自己定义个加载目录

/

/home/xx/xx.war

true

false

若是WAR是myapp.war,那么访问路径就是/myapp

若是包名是ROOT.WAR,那么访问路径是/

若是包名是ROOT-foobar.war,那么访问路径是/ 同时建立了一个虚拟主机foobar