您的位置:首页 > 其它

Jetty基本功能介绍

2017-07-17 17:31 405 查看
原文地址:http://blog.csdn.net/tomato__/article/details/27348191

Jetty是一个开源项目,提供了HTTP Server,HTTP Client和Javax.servlet容器,这里(http://www.eclipse.org/jetty/)是它的官方网站,这里对它做一个基本的介绍,包括基本目录、启动方式和应用部署。

Jetty目录结构

下面是Jetty 9.10的发布版本包含的文件和文件夹,及其作用。

[plain] view
plain copy

license-eplv10-aslv20.html  

            Jetty的License文件  

README.txt  

            Jetty的基本信息和命令  

VERSION.txt  

            发布版本  

bin/  

            Jetty运行在Unix系统上的shell脚本  

demo-base/  

            一个Jetty的base文件夹,用于运行演示webapps的Jetty server  

etc/  

            Jetty的XML配置文件文件夹  

lib/  

            Jetty依赖的JAR文件  

logs/  

            请求日志  

modules/  

            module定义文件夹  

notice.html  

            License信息和免责条款  

resources/  

            附属资源的配置文件  

start.d/  

            *.ini文件,这些文件包含一些配置文件,在命令行中会被作为参数添加上去(看start.ini)  

start.ini  

            包含添加到实际的命令行中的参数(modules,properties和XML配置文件)  

start.jar  

            调用Jetty的Jar  

webapps/  

            默认的Jetty放置webapps的文件夹  

这里做一个基本的了解,后面将详细讲述。

启动Jetty

Jetty的默认端口是8080,使用下面的命令启动:

[plain] view
plain copy

>cd $JETTY_HOME  

>java -jar start.jar  

然后你能在浏览器中访问:http://localhost:8080

Demo Base

在9.1.0之后,Jetty不再部署任何demo web应用,因此要看演示,你需要从demo-base文件夹启动Jetty,如下:

[plain] view
plain copy

>cd $JETTY_HOME/demo-base/  

>java -jar ../start.jar  

打开浏览器,输入http://localhost:8080,你将看到一个欢迎页面和几个demo/test web应用。

创建新Jetty Base

上面描述的demo-base文件夹是一个jetty.base机制的一个例子,该机制在Jetty 9.1增加。Jetty base允许服务端实例的配置和web应用被分别地存储,以保证升级的影响降到最小。Jetty的默认配置基于两个属性:

         jetty.home:定义jetty分发的位置,包括他的libs,默认modules和默认XML文件(例如start.jar,lib,等等)

         jetty.base:定义一个jetty服务器的特定实例的位置,包括他的配置,logs和web应用(例如start.ini,start.d,logs和webapps)

jetty.home和jetty.base可以直接在命令行中指定,也可以通过环境变量使用,例如:

[plain] view
plain copy

>cd $JETTY_BASE  

>java -jar $JETTY_HOME/start.jar  

这个跟随的命令创建了一个新的base文件夹,并激活了一个HTTP连接器和web应用部署者:

[plain] view
plain copy

>mkdir /tmp/mybase  

>cd /tmp/mybase  

>java -jar $JETTY_HOME/start.jar  

WARNING: Nothing to start, exiting ...  

  

Usage: java -jar start.jar [options] [properties] [configs]  

      java -jar start.jar --help  # for more information  

>java -jar $JETTY_HOME/start.jar --add-to-startd=http,deploy  

http            initialised in ${jetty.base}/start.d/http.ini (created)  

server          initialised in ${jetty.base}/start.d/server.ini (created)  

deploy          initialised in ${jetty.base}/start.d/deploy.ini (created)  

MKDIR: ${jetty.base}/webapps  

server          initialised in ${jetty.base}/start.d/server.ini  

>java -jar $JETTY_HOME/start.jar  

2013-09-06 14:59:32.542:INFO:oejs.Server:main: jetty-9.1.0-SNAPSHOT  

2013-09-06 14:59:32.572:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/tmp/mybase/webapps/] at interval 1  

2013-09-06 14:59:32.602:INFO:oejs.ServerConnector:main: Started ServerConnector@405a2273{HTTP/1.1}{0.0.0.0:8080}  

  

[...]  

改变Jetty端口

你可以通过在命令行中设置jetty.port改变端口:

[plain] view
plain copy

>cd $JETTY_HOME/demo-base  

>java -jar start.jar jetty.port=8081  

你可以将属性值添加到start.ini文件或者start.d/*.ini文件中。默认情况下,jetty定义jetty.port属性在start.d/http.ini文件中,可以被修改。

使用HTTPS启动

使用下面的方式可以激活https模块:

[plain] view
plain copy

>java -jar start.jar --add-to-startd=https  

https           initialised in ${jetty.home}/start.d/https.ini (created)  

ssl             initialised in ${jetty.home}/start.d/ssl.ini (created)  

server          enabled in     ${jetty.home}/start.ini  

resources       enabled in     ${jetty.home}/start.ini  

ext             enabled in     ${jetty.home}/start.ini  

>java -jar start.jar  

2013-09-06 13:52:43.326:INFO:oejs.Server:main: jetty-9.1.0  

...  

--add-to-startd执行如下操作:

 1)创建https.ini文件激活和配置https连接器模块。https模块增加etc/jetty-https.xml文件到命令行中。

 2)创建start.d/ssl.ini文件激活和配置SSL keystore。ssl模块增加etc/jetty-ssl.xml文件到命令行。

 3)检查etc/keystore文件是否存在,如果不存在,则下载一个示范keystore文件。

更多的start.jar选项

start.jar的工作是解释命令行,start.ini和start.d是提供Java classpath和属性和配置文件列表。start.jar有许多的选项,你可以通过下面的命令看到:

[plain] view
plain copy

>java -jar start.jar --help  

部署web应用

web应用部署在webapps文件夹,支持热部署,支持标准的WAR文件和Jetty配置文件,并遵循下面的约定:

 1)如果文件夹example/被部署,且包含一个WEB-INF/子文件夹,则它作为标准web应用部署,否则它作为静态目录上下文部署。上下文路径是/example(即:http://localhost:8080/example/),但如果文件夹名是ROOT(大小写敏感),则上下文路径是/。如果文件夹名以“.d”结束,则被忽略(但可以通过直接配置来使用)。

 2)文件example.war被作为标准web应用部署,上下文路径为/example(即:http://localhost:8080/example/)。如果文件名是ROOT(大小写敏感),则上下文路径为/。如果example.war和example/同时存在,则WAR被部署。

 3)一个XML文件example.xml被部署,配置通过XML文件定义,配置必须包含上下文路径。如果example.xml和example.war存在,仅XML被部署。

如果你有一个标准的web应用,你能通过拷贝它到webapps文件夹来热部署它到Jetty。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: