【问题标题】:What's the best way to pass arguments to a tomcat instance?将参数传递给 tomcat 实例的最佳方法是什么?
【发布时间】:2009-05-11 19:41:39
【问题描述】:

将参数传递给 tomcat 实例的最佳方式是什么?命令行参数是否可用于容器内的所有应用程序?我可以将参数传递给特定的应用程序吗?我需要通过内置的应用服务器来管理吗?

编辑: 为了澄清,我希望传递一个参数来指定要使用的配置。有时这可能会指定一组配置文件,这些文件可能因环境而异。

【问题讨论】:

    标签: java tomcat jakarta-ee


    【解决方案1】:

    您可以添加 -Dmy.config.var=configA 和 -Dmy.config.var=configB 并添加到 CATALINA_OPTS(每次您需要)并通过 System.getProperty("my.config.var) 从 java 中读取它们”)。这些不是环境变量。

    【讨论】:

    • 我更喜欢这种对所有 AS 服务器(JBOs 等)都可靠的方法
    【解决方案2】:

    我相信配置它的最佳方式是使用 server.xml 和 context.xml 文件。这是添加 JNDI 配置的地方。您可以为每个应用程序拥有不同的 context.xml 文件。在您的 WAR 文件中,将其放在 META-INF 目录中,Tomcat 将导入它。

    【讨论】:

      【解决方案3】:

      一切都可以通过标准的Java Properties机制看到通用的系统环境。此外,环境变量 CATALINA_OPTS 可用于将参数传递给 JVM。

      【讨论】:

      • 我不确定是否要使用系统变量,因为我可能正在运行同一应用程序的其他实例并希望为它们指定不同的配置。
      【解决方案4】:

      需要神奇地进入 Web 应用程序的东西应该放在 JNDI 中。这使您可以将对象放入和检索到外部某处的“全局哈希表”中。

      如果您只需要一个配置文件名,则传入一个属性 (-Dfoo=bar)。

      【讨论】:

        猜你喜欢
        • 2022-12-05
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 2011-02-08
        • 2011-07-07
        • 2019-04-22
        • 2010-10-13
        • 1970-01-01
        相关资源
        最近更新 更多