【问题标题】:Create war file from configuration file从配置文件创建war文件
【发布时间】:2011-08-09 12:56:24
【问题描述】:

在当前系统设置中,我有几个配置文件存储在 conf/Catalina/localhost 目录中。例如images.xml:

<Context path="/images" docBase="/home/user/images" debug="0" privileged="true" />

这允许链接到该目录内的文件,例如:http://localhost:8080/images/image.jpg

但是,当映射的驱动器位于网络位置时,与驱动器的连接会丢失。因为 Tomcat 无法到达目的地,所以配置会自动取消部署。由于此服务器上运行的是真正的 Web 应用程序,我不想更改此 Tomcat 设置。

所以问题是,我可以将此配置包含在 WAR 文件中吗?这将使重新部署更容易,并且可能允许我捆绑配置?

【问题讨论】:

    标签: tomcat path directory config contextpath


    【解决方案1】:

    如果您创建一个名为 images.war 的 war 文件并将其放在您的 webapps/ROOT 目录中,那么它将自动映射到上下文路径 images(基于战争文件名)。所以你可以这样做。 确保您还包含部署描述符 (web.xml) -- 详细信息在此处:http://download.oracle.com/docs/cd/E13222_01/wls/docs81/webapp/web_xml.html

    抱歉,您的评论与您的​​评论无关——因为我没有注意! 确实是 webapps 目录,而不是我上面复制粘贴的 webapps/ROOT。

    【讨论】:

    • 为什么要放在 webapps/ROOT。 ROOT 用于上下文根“/”。如果要在“/images”网址提供图像,则战争应该在“webapps/images.war”
    • 那么问题应该是,我应该在我的 web.xml 文件中设置什么来让 Tomcat 在它的默认 webapps/ROOT 目录之外使用一个 docbase 自动创建上述配置?
    【解决方案2】:

    具体配置告诉 tomcat 从指定目录(在 tomcat 的默认目录之外)加载 web 应用程序。这是tomcat特定的配置,所以即使可以在战争中捆绑这个配置(我认为你不能)我建议不要走这条路。

    更好的方法是将您的图像捆绑为分解的战争文件(以便您可以在 tomcat 运行时添加删除图像)并将其部署在 tomcat 中。据我了解,您希望将图像保存在连接断断续续的单独网络驱动器中。在这种情况下,当资源不可用时,tomcat 取消部署上下文是有意义的。

    【讨论】:

    • 这背后的想法是允许开发人员通过 url 共享和添加图像,而无需(或权限)访问网络服务器。它工作得很好,除了取消部署部分;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多