• Jetty入门(1-1)Jetty入门教程


    一、Jetty是什么?

    1、Jetty 是一个Java语言编写的,开源的Servlet容器和应用服务器。

    Jetty 极度轻量级、高便携性、功能强大、灵活和扩展性好,而且支持各种技术如SPDY、WebSocket、OSGi、JMX、JNDI和JAAS,已经广泛地应用于生产环境。

    Jetty的下载网页为:https://www.eclipse.org/jetty/download.html

    最新的版本 9.3.15,支持较新的规范,建议使用!

    2、Maven坐标

    当Jetty基于SourceForge管理时Maven的groupId是org.mortbay.jetty,

    当Jetty 7来到eclipse后groupId也改变了,最新的Jetty的POM坐标如下

    <dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-project</artifactId>
    <version>${project.version}</version>
    </dependency>
    3、在Maven中心的更新日志

     Jetty不同版本的更新日志记录在一个叫做VERSIONS.txt的文件中,也可以在Maven中心找到,坐标如下
    复制代码
    <dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-project</artifactId>
    <version>${project.version}</version>
    <classifier>version</classifier>
    <type>txt</type>
    </dependency>

    二、安装和验证jetty

    1、安装jetty

         安装比较简单,解压设置环境变量即可!

         解压到 d: oolsjetty9.3.15 目录,设置 JETTY_HOME=d: oolsjetty9.3.15。如果是linux,需要 source /etc/profile 。

         目录列表:

    2、验证jetty

    2.1、验证场景1 - 使用%JETTY_HOME%/webapps 发布目录验证

          cd %JETTY_HOME%

          java -jar start.jar

          在浏览器中输入 http://192.168.55.229:8080/remote.html(默认端口是8080,要避免和tomcat冲突,可以先把tomcat给禁掉。或者在jetty.xml中将端口改成8081)

          此时,使用webapps作为默认应用发布目录。

    2.2、验证场景2 - 使用%JETTY_HOME%/demo_base/webapps 发布目录验证

          cd %JETTY_HOME%/demo_base

          java -jar %JETTY_HOME%/start.jar

          在浏览器中输入 http://192.168.55.229:8080/remote.html(默认端口是8080,要避免和tomcat冲突,可以先把tomcat给禁掉。或者在jetty.xml中将端口改成8081)

          此时,使用webapps作为默认应用发布目录。 

    2.3、验证场景3 - 使用外置的 webapps 发布目录验证

          上述方式,应用和配置需要在%JETTY_HOME%和%JETTY_HOME%/demo_base中,侵入性强,升级jetty不方便, 一般用户不直接使用上述方式使用jetty

          而是采用单独建立一个JETTY_BASE目录方式。 

          mkdir d:mywebapps

          set JETTY_BASE=D:mywebapps 

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

          部署应用,即可运行

          copy EXAMPLE.WAR %JETTY_BASE%/webapps/EXAMPLE.WAR 

          cd %JETTY_BASE%

          java -jar %JETTY_HOME%/start.jar  (使用当前目录里面的配置和webapps)   

          http://localhost:8080/EXAMPLE

    三、根应用和非根应用

    1、外置式部署根应用 ROOT.WAR

          如何创建外置目录及其配置参见2.3章节!

          copy ROOT.WAR %JETTY_BASE%/webapps/ROOT.WAR

          cd %JETTY_HOME%

          java -jar start.jar

          启动,上下文根是 / , 访问 http://localhost:8080/

    2、部署一个普通应用 EXAMPLE.WAR

            copy EXAMPLE.WAR %JETTY_HOME%/webapps/EXAMPLE.WAR

            cd %JETTY_HOME%

            java -jar start.jar

            启动,上下文根是 /EXAMPLE , 访问 http://localhost:8080/EXAMPLE

    四、附录

    1、目录用途

    2、改变Jetty的端口

     通过在启动命令中设置jetty.http.port属性的值,可以让Jetty运行在修改后的端口上。
    > cd $JETTY_BASE
    > java -jar $JETTY_HOME/start.jar jetty.http.port=8081
    ...
      另外,可以将要设置的端口属性添加到start.ini或者start.d/http.ini文件中。默认情况,在start.d/http.ini文件中定义的jetty.http.port属性可以被修改成另一个值。

    提示

    配置属性信息通过如下方式获得

    首先去start.d/http.ini文件中找jetty.http.port=8080配置信息,若找到配置端口即为指定端口
    根据模块modules/http.mod文件找到指定配置默认为etc/jetty-http.xml,在此配置文件中有jetty.http.port配置信息,若找到即为此端口配置
    若上面两个都没有,则随机一个没有使用的端口
    3、为HTTPS & HTTP2增加SSL

      可通过如下命令,添加并激活HTTPS和HTTP2模块
    复制代码
    > java -jar $JETTY_HOME/start.jar --add-to-startd=https,http2
    [...]

    > java -jar $JETTY_HOME/start.jar
    [...]

    2015-06-04 13:52:01.933:INFO:oejs.ServerConnector:main: Started ServerConnector@6f1fba17{SSL,[ssl, alpn, h2, http/1.1]}{0.0.0.0:8443}
    [...]
    复制代码
    --add-to-startd:此命令在ini文件中设置有效的配置信息,使HTTPS和HTTP2支持SSL连接

    输入java -jar $JETTY_HOME/start.jar --add-to-startd=https,http2命令后会提示下载一些jar包,输入y按回车 

    4、修改Jetty的HTTPS端口

      你可以通过增加jetty.ssl.port启动参数来修改HTTPS的端口信息
    > cd $JETTY_BASE
    > java -jar $JETTY_HOME/start.jar jetty.ssl.port=8444
      除了在命令行增加参数的方法外,还可以在start.ini和start.d/*.ini文件中进行配置,所以如果用户使用--add-to-startd命令来使HTTPS生效,同样也可以在start.d/https.ini文件中进行修改。

    5、更多的start.jar操作选项

     start.jar的工作是用来翻译命令行内容的,start.ini和start.d目录(包含其中的*.ini文件)生成一个classpath环境,各种属性和配置可以使用Jetty相应的xml进行配置,更多的使用方法可以通过使用命令来获得帮助。
    > java -jar $JETTY_HOME/start.jar --help

  • 相关阅读:
    进程与线程
    软件过程2
    软件过程
    解决charles中options请求map local失败的问题
    工作心得
    II第七章:(1)Zuul路由网关
    II第九章:(1)Bus消息总线
    II第十一章:(1)Sleuth分布式请求链路跟踪
    II第八章:(1)Config分布式配置中心
    II第七章:(2)Gateway新一代网关
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7066146.html
Copyright © 2020-2023  润新知