【问题标题】:Whats the need to put the Tomcat's context.xml inside META-INF of Web App将 Tomcat 的 context.xml 放在 Web App 的 META-INF 中需要什么?
【发布时间】:2012-03-15 15:04:17
【问题描述】:

我有一个基本问题,在使用 Tomcat 时发生了两件事。

1.我想在部署在同一个Tomcat容器下的两个Web应用程序之间共享上下文,我要做的只是在context.xml中创建crossContext=true ,我在 {CATALINAHOME}/conf/context.xml 中做到了,但没有成功。后来我从我们自己的 Stack Overflow 中得到了解决方案,然后我将 context.xml 放入 META-INF 中,一切都按预期工作。

2.类似地,当我为我的 Web 应用程序配置 数据源 时,我最初也是这样做的,然后我将带有所需 JDBC 配置的 context.xml 放入 META-INF 中,然后它就可以工作了。

所以我的问题是为什么 Tomcat 从 META-INF 中选择 context.xml 配置?在 {CATALINAHOME}/conf 的 context.xml 中配置时缺少什么?我需要了解什么?

需要你的知识和建议

【问题讨论】:

    标签: servlets tomcat6


    【解决方案1】:

    显然,您在 Eclipse 之类的 IDE 中使用 Tomcat。这样 Tomcat 自己的/context.xml 确实会被忽略。 IDE 仅使用服务器引擎,并在 IDE 环境中创建单独的部署和工作空间。在 Eclipse 中,您可以在 Servers 项目中找到/context.xml 的副本。这个是可编辑的,将被应用。但是在 webapp 的 /META-INF 中提供另一个当然也是一种解决方案,而且更便携。

    Tomcat 自己的/context.xml 仅在您通过startup.bat/sh 等在IDE 环境之外独立启动时使用。

    【讨论】:

    • 感谢 Balus。,我尝试在 IDE 之外运行 Tomcat,它选择了 context.xml 并按预期工作。当我通过 IDE 进行操作时,我还看到了在 Workspace 插件中部署的 WAR。现在出于好奇想到了一个问题,为什么IDE要创建单独的部署文件夹,有什么具体原因吗?
    • 这样它就不会干扰“外部配置”设置。 IDE 需要的只是唯一的服务器引擎。但是,对于 Eclipse,您可以将 IDE 配置为完全接管 Tomcat。这样,当您从 IDE 内部运行时,它的默认主页也将可见。
    • 非常感谢 Balus 的知识分享
    猜你喜欢
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2020-02-11
    • 2012-11-21
    • 2013-01-13
    • 1970-01-01
    • 2013-06-20
    相关资源
    最近更新 更多