我正在关注this tutorial并且我遇到了Jetty配置问题。这就是说
现在,将目录更改为Jetty安装,并获取工作集 默认配置选项,只需复制文件contexts / test.xml (默认情况下与Jetty一起打包)到一个新文件:
$ cp contexts/test.xml contexts/web_test.xml
但是我的jetty安装没有/context
目录:
as-MacBook-Air:jetty.home a$ ls
README.TXT
VERSION.txt
bin
demo-base
etc
lib
license-eplv10-aslv20.html
logs
modules
notice.html
resources
start.d
start.ini
start.jar
webapps
我错过了什么? jetty text.xml文件在哪里?
答案 0 :(得分:10)
文档链接:Configuring a Specific Web Application Deployment
“context xml”是任何XML文件:
org.eclipse.jetty.webapp.WebAppContext
对于#2(配置WebAppContext),Jetty 9的一个例子是
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/myapp</Set>
<Set name="war"><Property name="jetty.webapps" default="."/>/myapp.war</Set>
<Set name="extractWAR">true</Set>
</Configure>
对于#3,部署者目录,由您自己的设置和配置决定。
请参阅etc/jetty-deploy.xml
并查看您的monitoredDirName
是什么。
${jetty.base}/webapps/
${jetty.home}/contexts/
见(etc/jetty-contexts.xml
)${jetty.home}/contexts/
看到(etc/jetty-contexts.xml
)Jetty 7和Jetty 8在部署人员中有一个很难理解的怪癖,你可以通过webapp部署者将webapp部署为WAR,或者通过上下文部署者部署为Context,如果你有两个部署者,你的webapp将会被部署两次。 (让无穷无尽的人感到困惑)。
使用Jetty 9,合并了2个部署技术,使他们相互了解并防止重复的Web应用程序部署。
Jetty 9中的部署逻辑如下:
WebAppProvider扫描了webapps目录(又名monitoredDirName
)。
此提供程序扫描一个或多个目录(通常是“webapps”)以查找要部署的上下文,这可能是:
".war"
结尾)为了避免双重部署并允许扫描目录内容的灵活性,提供程序实现了一些启发式方法来忽略扫描中找到的某些文件:
"."
开头)将被忽略".d"
结尾的目录将被忽略foo/
和foo.war
),则假定该目录是解压缩的WAR,并且仅部署WAR(可以重新使用解压缩的目录)< / LI>
foo/
和foo.xml
),则假定该目录是解压缩的WAR,并且仅部署XML(可以使用其中的目录)配置)foo.war
和foo.xml
),则假定WAR由XML配置且仅部署XML。