Java 在tomcat级别重写tomcat属性

Java 在tomcat级别重写tomcat属性,java,tomcat,systemd,properties-file,Java,Tomcat,Systemd,Properties File,目前,我的应用程序能够使用两种策略解析应用程序属性: 内部:此策略将使用代码库中的应用程序.properites文件 外部属性:如果文件存在于tomcat级别的config文件夹中,则此策略可以使用application.properites文件 例如:如果tomcat是以以下方式启动的/opt/tomcat/bin/startup.sh。代码将通过以下路径查找外部属性/opt/tomcat/bin/config/application.properties 如果应用程序以以下方式启动,则此

目前,我的应用程序能够使用两种策略解析应用程序属性:

  • 内部:此策略将使用代码库中的
    应用程序.properites
    文件
  • 外部属性:如果文件存在于tomcat级别的
    config
    文件夹中,则此策略可以使用
    application.properites
    文件
例如:如果tomcat是以以下方式启动的
/opt/tomcat/bin/startup.sh
。代码将通过以下路径查找外部属性/opt/tomcat/bin/config/application.properties

如果应用程序以以下方式启动,则此方法可以正常工作
sh/opt/tomcat/bin/startup.sh
,但它不适用于systemd单元tomcat文件
服务tomcat start

/etc/systemd/system/tomcat.service
单元文件的内容

# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/opt/java
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
我试图将配置文件夹复制到
/etc/systemd/system/
,但仍然无法工作


任何使用systemd脚本的
config
文件夹正确路径的想法。

我已在单位文件中用以下行修复了它:

WorkingDirectory=/opt/tomcat/bin

我已经用单位文件中的以下行修复了它:

WorkingDirectory=/opt/tomcat/bin

用什么方法不起作用?你犯了什么错误?我刚把它修好。当我使用以下命令服务tomcat start启动tomcat时,它不起作用。实际上并没有加载外部属性文件,而是使用了内部属性。以什么方式不工作?你犯了什么错误?我刚把它修好。当我使用以下命令服务tomcat start启动tomcat时,它不起作用。实际上并没有加载外部属性文件,而是使用了内部属性。