【问题标题】:Tomcat 9 setting external propertiesTomcat 9 设置外部属性
【发布时间】:2023-04-11 05:03:01
【问题描述】:

这个问题已经在 Stackoverflow 中被问过很多次,但那里提供的解决方案在我的情况下不起作用。

我们在 JVM - 10, win - 64 位上使用 ant 脚本创建 war 文件,并将文件保存在 Tomcat-9 的 webapps 文件夹中强>。我们正在尝试从外部属性文件加载资源包。为此,我们有 2 个属性文件,我们保存在 C:\Program Files\Ticket App\internalproperties 和 C:\Program Files\Ticket App\externalproperties 文件夹中。

我们已经尝试在 setclasspath.bat 中设置类路径:

set CLASSPATH=C:\Program Files\Ticket App\internalproperties;C:\Program Files\Ticket App\externalproperties;%JAVA_HOME%\lib\tools.jar;

它没有用。我们还尝试将以下代码保留在 setenv.bat 中

set CLASSPATH=%JAVA_HOME%\lib\tools.jar;C:\Program Files\Ticket App\internalproperties;C:\Program Files\Ticket App\externalproperties;%JAVA_HOME%\lib\tools.jar;

两次 Tomcat 都尝试从目录 C:\apache-tomcat-9.0.12-windows-x64\apache-tomcat-9.0.12\bin 中挑选文件。

如果您能在这方面帮助我们,那将非常有帮助。 提前致谢。

【问题讨论】:

  • 把属性文件放到tomcat要找的文件夹里?
  • 我们做不到。我们需要将属性文件保存在该特定文件夹中。我不明白我们如何覆盖路径?
  • 我不认为 Tomcat 可以如此轻松地抓取他的“文件夹域”之外的文件,特别是在系统驱动器中。也许其他人知道..

标签: tomcat tomcat9


【解决方案1】:

对于 Linux 上的 Tomcat 9.0.14,它适用于我。

在 Tomcat 的 setenv.sh 中,我有这一行 导出 CLASSPATH=/opt/abc/conf

下面的java程序可以运行,abc.properties在/opt/abc/conf下

    Properties prop = new Properties();
    InputStream input = null;
    try{
    input =prop.getClass().getResourceAsStream("/abc.properties"); 
    prop.load(input);
    System.out.println(prop.getProperty("change.monitor.interval"));
    }
    catch(Exception ex)
    {
        ex.printStackTrace();
    } 

在 Windows 中的行为也应该相同。

【讨论】:

    猜你喜欢
    • 2021-11-08
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 2021-11-02
    相关资源
    最近更新 更多