我很难为 tomcat 8 的 RedHat 环境设置 JAVA_OPTS。我需要加载 tomcat 安装目录之外的属性。 文件夹结构:
----/home/tomcat
-----/apache-tomcat-8
-----/remoteProperties
我想从远程属性文件夹加载属性。
setenv.sh
文件内容如下:
JAVA_OPTS="$JAVA_OPTS -DPropertyPath=/home/tomcat/remoteProperties/collections"
部署我的 war 文件后,这个路径似乎没有正确设置:
FileNotFound异常
/home/tomcat/apache-tomcat-8.0.41/bin/home/tomcat/remoteProperties/collections/properties/logging/logback.xml
只要我更改 setenv.sh
的内容并使用相对路径而不是绝对路径:
JAVA_OPTS="$JAVA_OPTS -DPropertyPath=../../remoteProperties/collections"
它按预期工作。是否可以在 JAVA_OPTS 中设置绝对路径?谢谢!
最佳答案
调试应用程序后,我注意到 FileSystemResourceLoader
spring 类用于获取一些资源。然后我在文档中读到在使用绝对路径时必须放置前缀 file:
。然后我只需要将 setenv.sh
脚本的内容更改为:
JAVA_OPTS="$JAVA_OPTS -DPropertyPath=file:/home/tomcat/remoteProperties/collections"
关于用于 RedHat 的 JAVA_OPTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46215211/