如何在Jetty中配置Web应用程序部署目录

时间:2011-08-10 13:54:45

标签: web-applications deployment jetty

这一定是一个死的简单答案,但我似乎无法找到!

我刚开始在 CentOS 5.5 上使用 Jetty 7.0.2 ,并使用默认设置部署了webapp(只需放置我的WAR文件在/webapps目录中。当Jetty启动时,它会将战争提取到/tmp/jetty {something-warfilename-etc}目录中。

我知道Jetty有大量可以实现的自定义配置,但是,我只想设置提取的war文件的位置,以便我可以动态修改.properties个文件等安全。

提前致谢!

2 个答案:

答案 0 :(得分:6)

为什么不将解压后的war文件放在webapps/

作为他们的docs say,如果Jetty在$JETTY_HOME/webapps/中找到目录,它将很乐意将其部署为servlet webapp。然后,您可以在不更改任何Jetty设置的情况下调整属性文件。

这也意味着当您拥有新版本的应用程序时,您不必担心Jetty会覆盖对属性文件的任何更改(尽管您仍需要小心)。

答案 1 :(得分:3)

我知道这个问题很老,但我想要一个答案,这是一个配置参数,而不是一个解压缩的WAR解决方案。配置解决方案是将以下参数添加到WebAppProvider(在8.1.8中,这在jetty-webapps.xml中):

<Set name="tempDir"><New class="java.io.File"><Arg>/usr/local/jetty-8.1.8/work</Arg></New></Set>

以便整个配置文件读取如下内容:

<Configure id="Server" class="org.eclipse.jetty.server.Server">
    <Ref id="DeploymentManager">
          <Call id="webappprovider" name="addAppProvider">
            <Arg>
              <New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
                <Set name="monitoredDirName"><Property name="jetty.home" default="." />/webapps</Set>
                <Set name="defaultsDescriptor"><Property name="jetty.home" default="."/>/etc/webdefault.xml</Set>
                <Set name="scanInterval">1</Set>
                <Set name="contextXmlDir"><Property name="jetty.home" default="." />/contexts</Set>
                <Set name="extractWars">true</Set>
                <Set name="tempDir"><New class="java.io.File"><Arg>/usr/local/jetty-8.1.8/work</Arg></New></Set>
              </New>
            </Arg>
          </Call>
    </Ref>
</Configure>