jetty /context/text.xml在哪里?

时间:2013-12-19 00:26:37

标签: java clojure jetty

我正在关注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文件在哪里?

1 个答案:

答案 0 :(得分:10)

文档链接:Configuring a Specific Web Application Deployment

“context xml”是任何XML文件:

  1. 关注Jetty IoC XML syntax
  2. 配置org.eclipse.jetty.webapp.WebAppContext
  3. 并且位于您的部署者识别的目录中
  4. 对于#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 7和Jetty 8在部署人员中有一个很难理解的怪癖,你可以通过webapp部署者将webapp部署为WAR,或者通过上下文部署者部署为Context,如果你有两个部署者,你的webapp将会被部署两次。 (让无穷无尽的人感到困惑)。

    使用Jetty 9,合并了2个部署技术,使他们相互了解并防止重复的Web应用程序部署。

    Jetty 9中的部署逻辑如下:

    WebAppProvider扫描了webapps目录(又名monitoredDirName)。

    此提供程序扫描一个或多个目录(通常是“webapps”)以查找要部署的上下文,这可能是:

    • 标准WAR文件(必须以".war"结尾)
    • 包含扩展WAR文件的目录
    • 包含静态内容的目录
    • 配置ContextHandler或WebAppContext实例的XML描述符Jetty IoC XML语法

    为了避免双重部署并允许扫描目录内容的灵活性,提供程序实现了一些启发式方法来忽略扫描中找到的某些文件:

    • 隐藏文件(以"."开头)将被忽略
    • 名称以".d"结尾的目录将被忽略
    • 如果存在目录和WAR文件(例如foo/foo.war),则假定该目录是解压缩的WAR,并且仅部署WAR(可以重新使用解压缩的目录)< / LI>
    • 如果存在目录和匹配的XML文件(例如foo/foo.xml),则假定该目录是解压缩的WAR,并且仅部署XML(可以使用其中的目录)配置)
    • 如果存在WAR文件和匹配的XML(例如foo.warfoo.xml),则假定WAR由XML配置且仅部署XML。