使用procrun在作为服务运行的Java应用上启用jmx身份验证

时间:2018-07-04 15:09:26

标签: java jmx procrun

我正在使用procrun将Java应用程序作为服务运行。当未启用JMX身份验证时,该应用程序运行良好,但是当我添加访问和密码文件,限制对密码文件的权限并启用JMX身份验证时,该应用程序未启动,并显示1074: The process terminated unexpectedly错误。 / p>

下面是我使用最新版本的procrun将应用程序注册为服务的脚本。

cd E:\MyApp
MyApp.exe //IS//MyApp --Install=%cd%\MyApp.exe --Jvm="C:\Program Files\Java\jdk1.8.0_131\jre\bin\server\jvm.dll" --JvmMx=2048 --JvmMs=2048 --Startup=auto --StartMode jvm --StartClass com.MyApp --StartParams start --StartMethod start --StopMode jvm --StopClass com.MyApp --StopParams stop --StopMethod stop --Classpath=%cd%\MyApp.jar --LibraryPath=%cd%\bin --JvmOptions="-Duser.dir=%cd%" ++JvmOptions=-XX:+RelaxAccessControlCheck ++JvmOptions=-Dcom.sun.management.jmxremote ++JvmOptions=-Dcom.sun.management.jmxremote.port=1099 ++JvmOptions=-Dcom.sun.management.jmxremote.ssl=false ++JvmOptions=-Dcom.sun.management.jmxremote.authenticate=true ++JvmOptions=-Dcom.sun.management.jmxremote.access.file=E:\MyApp\Conf\jmxremote.access ++JvmOptions=-Dcom.sun.management.jmxremote.password.file=E:\MyApp\Conf\jmxremote.password --JvmOptions=-XX:+UseConcMarkSweepGC --JvmOptions=-XX:CMSInitiatingOccupancyFraction=40 ++JvmOptions=-Dorg.xml.sax.parser="com.sun.org.apache.xerces.internal.parsers.SAXParser"  ++JvmOptions=-Djavax.xml.parsers.DocumentBuilderFactory="com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"  ++JvmOptions=-Djavax.xml.parsers.SAXParserFactory="com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl" --LogPath=E:\Logs --LogLevel=DEBUG --StdOutput=auto --StdError=auto --StartPath=%cd% --StopPath=%cd% --DisplayName=MyApp

关于可能出什么问题的任何线索吗?

1 个答案:

答案 0 :(得分:0)

我认为您的密码文件有问题。首先,只需使用像我的简单的jmx配置。这是我用于启动的简单JMX配置:

 -Dcom.sun.management.jmxremote 
 -Dcom.sun.management.jmxremote.port=11099 
 -Dcom.sun.management.jmxremote.ssl=false        
 -Dcom.sun.management.jmxremote.authenticate=false
 -Dcom.sun.management.jmxremote.local.only=false 
 -Djava.rmi.server.hostname=localhost
 -Dcom.sun.management.jmxremote.rmi.port=11098