使用 procrun 在 Java 应用程序上运行即服务上启用 jmx 身份验证



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

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

cd E:MyApp
MyApp.exe //IS//MyApp --Install=%cd%MyApp.exe --Jvm="C:Program FilesJavajdk1.8.0_131jrebinserverjvm.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:MyAppConfjmxremote.access ++JvmOptions=-Dcom.sun.management.jmxremote.password.file=E:MyAppConfjmxremote.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

有什么线索可以出错吗?

我认为您的密码文件有问题。起初,只需使用像我这样的简单 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

最新更新