运行jetty

半兽人 发表于: 2015-06-29   最后更新时间: 2022-10-20 23:48:12  
{{totalSubscript}} 订阅, 14,044 游览

Jetty的默认端口为8080, 运行下面的命令启动jetty:

> cd $HOME/jetty-distribution-9
> java -jar start.jar
2015-02-09 04:01:36.970:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended.  See documentation at https://www.eclipse.org/jetty/documentation/current/startup.html
2015-02-09 04:01:37.703:INFO:oejs.Server:main: jetty-9.2.7.v20150116
2015-02-09 04:01:37.751:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/home/hadoop/jetty-distribution-9.2.7.v20150116/webapps/] at interval 1
2015-02-09 04:01:37.801:INFO:oejs.ServerConnector:main: Started ServerConnector@14da173c{HTTP/1.1}{0.0.0.0:8080}
2015-02-09 04:01:37.801:INFO:oejs.Server:main: Started @3501ms

你可以在游览器里访问:https://localhost:8080.

演示

9.1版本以后,jetty没有部署任何演示web的应用程序,所以想看到更多有趣的演示服务器,需要运行从demo-base目录下运行,如下:

> cd $HOME/jetty-distribution-9/demo-base/
> java -jar ../start.jar
 2015-02-09 04:42:53.617:INFO::main: Logging initialized @826ms
2015-02-09 04:42:54.167:WARN::main: demo test-realm is deployed. DO NOT USE IN PRODUCTION!
2015-02-09 04:42:54.173:INFO:oejs.Server:main: jetty-9.2.7.v20150116
2015-02-09 04:42:54.193:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/home/hadoop/jetty-distribution-9.2.7.v20150116/demo-base/webapps/] at interval 1
2015-02-09 04:42:54.782:WARN::main: test-jaas webapp is deployed. DO NOT USE IN PRODUCTION!
2015-02-09 04:42:55.334:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@9a0e408{/test-jaas,file:/tmp/jetty-0.0.0.0-8080-test-jaas.war-_test-jaas-any-3888906193790876917.dir/webapp/,AVAILABLE}{/test-jaas.war}
2015-02-09 04:42:55.916:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@782283ad{/,file:/home/hadoop/jetty-distribution-9.2.7.v20150116/demo-base/webapps/ROOT/,AVAILABLE}{/ROOT}
2015-02-09 04:42:56.398:WARN::main: test-jndi webapp is deployed. DO NOT USE IN PRODUCTION!
2015-02-09 04:42:56.731:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@4d74bd22{/test-jndi,file:/tmp/jetty-0.0.0.0-8080-test-jndi.war-_test-jndi-any-5875179471315066596.dir/webapp/,AVAILABLE}{/test-jndi.war}
2015-02-09 04:42:56.747:INFO:oejsh.ContextHandler:main: Started o.e.j.s.h.MovedContextHandler@58e6c418{/oldContextPath,null,AVAILABLE}
2015-02-09 04:42:57.324:WARN::main: test-spec webapp is deployed. DO NOT USE IN PRODUCTION!
Calling TestListener.contextInitialized
2015-02-09 04:42:57.634:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@57b0fd63{/test-spec,[file:/tmp/jetty-0.0.0.0-8080-test-spec.war-_test-spec-any-8818760834781530071.dir/webapp/, jar:file:/tmp/jetty-0.0.0.0-8080-test-spec.war-_test-spec-any-8818760834781530071.dir/webapp/WEB-INF/lib/test-web-fragment-9.2.7.v20150116.jar!/META-INF/resources],AVAILABLE}{/test-spec.war}
2015-02-09 04:42:58.321:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@1e6e49a4{/proxy,file:/tmp/jetty-0.0.0.0-8080-xref-proxy.war-_xref-proxy-any-3828059417986992849.dir/webapp/,AVAILABLE}{/xref-proxy.war}
2015-02-09 04:42:58.983:WARN::main: test webapp is deployed. DO NOT USE IN PRODUCTION!
2015-02-09 04:42:59.708:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@52bd157{/test,file:/tmp/jetty-0.0.0.0-8080-test.war-_test-any-7950694189590271229.dir/webapp/,AVAILABLE}{/test.war}
2015-02-09 04:43:00.112:WARN::main: async-rest webapp is deployed. DO NOT USE IN PRODUCTION!
2015-02-09 04:43:00.163:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@62f4b327{/async-rest,[file:/tmp/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-1162777238280906246.dir/webapp/, jar:file:/tmp/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-1162777238280906246.dir/webapp/WEB-INF/lib/example-async-rest-jar-9.2.7.v20150116.jar!/META-INF/resources],AVAILABLE}{/async-rest.war}
2015-02-09 04:43:00.179:INFO:oejs.ServerConnector:main: Started ServerConnector@2e3414dc{HTTP/1.1}{0.0.0.0:8080}
2015-02-09 04:43:00.193:INFO:oejs.ServerConnector:main: Started ServerConnector@51701830{SSL-http/1.1}{0.0.0.0:8443}
2015-02-09 04:43:00.194:INFO:oejs.Server:main: Started @7403ms

游览器访问 https://localhost:8080, 现在你就可以看到一个演示页面和测试页.

警告

演示的web应用程序不一定是安全的,不要部署在生产web服务器上。

创建一个新的Jetty部署

上述的demo-base目录是在Jetty9.1中添加到jetty的一个例子。Jetty允许服务器的配置和web应用程序单独存放在Jetty的部署,使升级可以以最小的中断来完成。Jetty的默认配置是基于两个属性:

jetty.home

定义Jetty分布的位置,它的库,默认模块和默认XML文件属性。(typically start.jar, lib, etc)

jetty.base

它定义了一个Jetty服务器的特定实例的位置,它的配置,日志和web应用程序的属性。 (typically start.ini, start.d, logs and webapps)

所述jetty.home和jetty.base性质可以显式地设置在命令行上,或者它们可以从环境推断,如果使用命令:

> cd $HOME/my-base
> java -jar $HOME/jetty-distribution-9/start.jar

下面的命令创建一个新的基础目录,并启用它HTTP连接器和Web应用程序部署:

> mkdir /tmp/mybase
> cd /tmp/mybase
> java -jar $HOME/jetty-distribution-9/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 $HOME/jetty-distribution-9/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 $HOME/jetty-distribution-9/start.jar
 2013-09-06 14:59:32.542:INFO:oejs.Server:main: jetty-9-demo
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改变端口:

> cd $HOME/jetty-distribution-9/demo-base
> java -jar ../start.jar jetty.port=8081

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

笔记

通过以下配置属性:

  • start.d/ http.ini文件是有效的命令行的一部分,包含--module= HTTP参数,它激活HTTP模块

  • 模块/ http.mod文件定义指定了etc / jetty-http的http模块。它使用xml配置文件和模板ini属性

  • 该jetty.port属性用于在etc/jetty.http.xml属性的XML元素的ServerConnector实例与端口注入

*更多配置信息后面稍后介绍。

通过HTTPS运行

Https连接器添加到jetty配置,可以通过以下命令生成:

> 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...
[...]
  • --add-to-startd执行如下操作:

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

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

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

笔记

如果一个startini文件优先于个人start.d/的.ini文件,然后选择--add - 开始=模块可用于附加模块开始激活。在start.d的ini文件,而不是创建一个文件 如果一个start.ini文件优先于个人start.d/.ini文件,然后选择——add-to-start =module 可用于附加模块激活到start.d ini文件,而不是创建一个文件。

改变Jetty HTTPS端口

你可以配置SSL连接器不同的端口上运行通过设置https。命令如下:

> cd $HOME/jetty-distribution-9/demo-base
> java -jar ../start.jar https.port=8444

另外,属性值可以一开始就建立 .ini文件和start.d / *.INI文件。如果你使用 —— add-to-startd命令启用https,然后您可以编辑该属性在start.d/https.ini文件。

更多 start.jar 选项

该start.jar的工作就是解释命令行,start.ini和start.d建立属性和配置文件的Java类路径和列表传递给主类的Jetty的XML配置机制。该start.jar机构具有记录在启动管理部分,你可以通过使用命令看到他们在总结了许多选项:

> java -jar start.jar --help
更新于 2022-10-20

WARN  : --add-to-startd is deprecated! Instead use: --create-startd --add-to-start=http,deploy

查看jetty更多相关的文章或提一个关于jetty的问题,也可以与我们一起分享文章