1

Apache Commons Daemon(procrun) を使用して jar を Windows サービスとして実行しようとしています。サービスはログを生成せず、構成ファイルを読み取りません。

jar は正常に開始されました。jar のログに log4j を使用しており、log4j.properties を MyJar.jar に含めています。それでも、サービスはログを作成していません。また、プログラムが構成ファイルを読み取っていないことがわかりました-myConfig.config

次のコマンドを使用してサービスをインストールしました。

%INSTALL_SERVICE_CMD%  //IS//SERVICEAGENT --DisplayName="DispName" --Install=%SERVICE_EXE_HOME%\prunsrv.exe --LogPath=%INSTALLER_HOME% --LogLevel=Info --StdOutput=stdout.log --StdError=stderr.log  --StartMode=Java --StopMode=Java --Jvm=auto --Startup=auto --JvmMx=512 ++JvmOptions=-XX:MaxPermSize=128m --StartPath=%START_CLASS_PATH%\ --Classpath=absolutePath\MyJar.jar --StartClass=com.jar.aa.MainEntry --StopClass=com.jar.aa.ExitEntry ++StopParams=--stop ++JvmOptions=-Dfile.encoding=UTF8 ++JvmOptions=-Dlog4j.configuration=log4j.properties ++JvmOptions=-Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
After running the service it produced the following:
stderr.log

2019-06-26 13:31:06 Commons Daemon procrun stderr initialized
log4j:WARN No appenders could be found for logger (com.facilio.bacnet.DiscoverDevices).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

コードで構成ファイルを読み取り、ログを適切に作成する必要があります。jar を直接実行すると、すべて正常に動作します。この問題は、Apache Commons Daemon Procrun を使用してサービスとして jar を実行している場合にのみ発生します。

4

0 に答える 0