【问题标题】:How to configure a webapps deployment directory in Jetty如何在 Jetty 中配置 webapps 部署目录
【发布时间】:2011-08-10 13:54:44
【问题描述】:

这一定是一个非常简单的答案,但我似乎找不到!

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

我知道 Jetty 有很多可以实现的自定义配置,但是现在,我只对设置提取的 war 文件的位置感兴趣,以便我可以安全地动态修改 .properties 文件等。

提前致谢!

【问题讨论】:

    标签: web-applications deployment jetty


    【解决方案1】:

    为什么不直接把解压后的war文件放到webapps/呢?

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

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

    【讨论】:

    • 一头撞在桌子上 您知道,当您努力寻找您期望很复杂的东西时,最简单的解决方案就在您面前吗?好吧,这对我来说就是这样。 :) 谢谢blahdiblah。
    • 如果你这样做了,你只是得到一个 404,就好像你没有在任何地方放任何东西......这可能是因为你在 Java Service Wrapper 和 you didn't set jetty.home 下运行。
    • @blahdiblah 我无法在我想要的位置部署网络应用程序,我们将不胜感激。我试图在 jetty-webapps.xml 中设置临时目录,并且我尝试通过 Jetty 中 WebInfConfiguration 类的 configureTempDirectory 配置临时目录,但没有喘息的机会。你能在这方面帮助我吗?
    【解决方案2】:

    我知道这个问题很老,但我想要一个配置参数的答案,而不是解压缩的 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>
    

    【讨论】:

    • /usr/local/jetty-8.1.8/work 对我没有帮助,我将这一行放在 jetty-webapps.xml 中,但 Jetty 仍将 Web 应用程序部署在 System Temp Directory 中。你能告诉我是否有什么需要放在一边的吗?
    猜你喜欢
    • 1970-01-01
    • 2011-10-09
    • 2016-08-30
    • 2020-10-12
    • 1970-01-01
    • 2018-08-18
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多