Jetty9 使用

Jetty9 使用,第1张

Jetty比较简单,和Tomcat大致相同,本文主要描述jetty9以上版本的使用,jetty9版本对芹数尺jetty的目录结构和使用都有了一些明显的改动。

Jetty较于Tomcat属于轻量级,而且在毕裂处理高并发细粒度请求的场景下显得更快速高效。所以使其也拥有众多使用场景,合适的选择应该为:云平台本身的门户网站放在Tomcat内,而云台托管的Java Web应该是部署在Jetty内的。

bin目录是存放在Unix系统下运行的shell脚本的;

etc存放的都是jetty的配置文件

modules是存放着各个模块的,以.mod结尾,点进去可以看到有众多模块,不过大多数是没有激活的,像logs,webapps这种模块就是默认激活的。

webapps和Tomcat一样,用于存放项目的;

可以看到截图中是有个work目录的,正常情况下,解压jetty是没有这个目录的,因为当在webapps中存放项目时,通过在根目录下面运行java -jar start.jar命令,启动jetty,由于jetty本身所在的目录和运行的项目的路径是分开的,这方便于丹jetty升级的时候,并不影响运行的项目,所以例如在webapps下放置一个war包,运行jetty,该war包解压出来的项目是存在于系统的temp的目录下面的,在jetty的目录中并不能找到,不过当创建一个work文件夹的时候,解压出来的项目就会默认的存放在work文件夹内了。

里面的配置文件编写为:

这是最基础的配置,同tomcat的server.xml类似,不过jetty可以配置更多。

默认情况下,jetty会对根目录(也可以配置jetty.base)下webapps/目录下的内容实现自动部署,部署的规则如下:

隐藏文件(.开头)和.d结尾的目录被忽略;

CVS目录如”CVS”和”CVSROOT”被忽略;

任何war包都会被自动部署;

任何xml描述文件被认为是可部署的;

任何目录都被认为是可部署的;

同名的war包和目录同时存在,目录不被部署,仅war包部署,且认为war包引用该目录;

同名的war包和xml文件同时存在,war包不被部署,仅xml文件描述符被部署,且认为该xml文件引用该war包;

同名的目录和xml文件同时存在,目录不被部署,xml文件被部署,且认为xml文件引用该目录;

关于更详细的说明嫌高,请参考官方文档的这里。我主要提醒的是:在webapps目录中,如果存在同名的目录、war包和xml文件,它们会被当做同一个工程,部署的优先级是xml文件>war包>目录。一定要注意同名,如果不同名,在webapps下存在一个war包,同时存在一个引用该war包的xml文件,则会导致重复部署,这就是我跳的坑。

部署时,推荐的做法是,将xml描述文件放到自动部署的webapps目录下,里面定义war包的路径、上下文路径、是否解压、临时目录、日志文件等,然后将war包放在自定义的固定目录下,项目更新,只需要备份和替换war包,重启jetty即可。

以上转自: https://blog.csdn.net/weixin_38978094/article/details/87917711

demo-base目录为单独项目的一个实例,该目录就是运行某个项目的jetty_base,其可以在服务器的任何位置。

目录结构:

修改访问的context-path在webapps对应的xml中,修改端口号在start.d/http.ini中。

启动该项目:java -jar ${JETTY_HOME}/start.jar

启动时候也可以指定jetty_base:java -jar ${JETTY_HOME}/start.jar jetty.base=...

1.法1: 在pom中配置

<build>

<finalName>testdemo</finalName>

<plugins>

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

<version>6.1.26</version>

<configuration>

<!-- 在很短的时间间隔内在扫描web应用检查是否有改变,如果发觉有任何改变则自动热部署。默认为0,表示禁用热部署检查。任何一个大于0的数字都将表示启用。 -->

<scanIntervalSeconds>10</scanIntervalSeconds>

<webAppConfig>

<!--jetty插件启动后的访问路径: http://localhost:8080/testdemo-->

<contextPath>/testdemo</contextPath>

<tempDirectory>${project.build.directory}/work</tempDirectory>

</webAppConfig>

</configuration>

</plugin>

</plugins>

</build>

在命令行中输入如模举下命令:

a.切换的项目坐在文件夹

d:

cd workspace/testdemo

b.清理、打包

mvn clean

mvn clean install -Dmaven.test.skip=true

c.在jetty中运搜码液行(这个定位到src/main/webapp目录,只执行mvn clean则target下不会生成war包)

mvn jetty:run

d.访问http://localhost:8080/testdemo

e.停止jetty

ctrl+c

y

=====================================================

2.法2: 在pom中配置

<build>

<finalName>testdemo</finalName>

<plugins>

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

<version>6.1.26</version>

<configuration>

<contextPath>/testdemo</contextPath>

<webApp>${basedir}/target/testdemo.war</webApp>

</configuration>

</plugin>

</plugins>

</build>

在命令行中输入如下命令:

a.切换的项目坐在文件夹

d:

cd workspace/testdemo

b.打包

mvn clean

c.在jetty中运行

mvn jetty:run-war -Dmaven.test.skip=true

d.访问http://localhost:8080/testdemo

e.停世物止jetty

ctrl+c

y

=====================================================

3.法3: 在pom中配置

<build>

<finalName>testdemo</finalName>

<plugins>

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

<version>6.1.26</version>

<configuration>

<contextPath>/testdemo</contextPath>

<war>${basedir}/target/testdemo.war</war>

</configuration>

</plugin>

</plugins>

</build>

在命令行中输入如下命令:

a.切换的项目坐在文件夹

d:

cd workspace/testdemo

b.打包

mvn clean

c.在jetty中运行

mvn jetty:run-war -Dmaven.test.skip=true

d.访问http://localhost:8080/testdemo

e.停止jetty

ctrl+c

y

eclipse如何进断点调试(前提是eclipse安装了maven插件,工程由maven创建,且工程pom.xml中配置了如上所说的jetty插件):

1. 工程右键-->调试方式-->调试配置-->maven build

2. Maven Build-->新建-->右侧:main-->Base Directory-->Browse Workspace-->点选要调试的工程-->Goals:clean jetty:run-->Skip Tests-->应用-->调试(启动过程中会自仓库下载依赖的插件,注意仓库<repositories>配置)

3. 访问url *** 作

4. 进断点后,如果报找不到源,则点击"编辑源查找路径"-->"添加"-->java 项目-->确定-->勾选要调试项目-->确定-->确定-->进入断点


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8169170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存