You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Jan Patrick Lübbert <ma...@jpluebbert.de> on 2020/09/01 16:31:28 UTC
Re: prunsrv JPMS support?
Am 31.08.20 um 21:57 schrieb Mark Thomas:
> On 31/08/2020 12:38, JP wrote:
>> Hello,
>>
>> Can anyone tell me if prunsrv does support JPMS/modularized applications
>> on the Windows platform? I read that Jsvc does support it, but I havn't
>> found anything about prunsrv in the docs so far.
>>
>> I tried to modify my configuration, but hat no luck yet. On the command
>> line the syntax to launch the application would be:
>>
>> jre\bin\java.exe --module-path modules --module
>> de.my.package/de.my.package.Main
>>
>> Any help appreciated. Thanks.
>
> What have you tried so far? What happened? How did that differ from what
> you expected?
>
> Generally, procrun passes arguments like that direct to the JVM.
>
> There might be something about jvm mode that means it needs special
> setup but I'd expect java mode to work out of the box.
>
> Mark
>
I tried the JVM mode with the service config (arguments as array in a
PowerShell script):
"install",
"MyService",
"--DisplayName=""My Service""",
"--JavaHome=""$RootPath\jre""",
"--Jvm=""$RootPath\jre\bin\client\jvm.dll""",
"--StartMode=jvm",
"--StopMode=jvm",
"--JvmOptions9=""--module-path modules""",
"++JvmOptions9=""--module de.my.package/de.my.package.Main""",
"--StartClass=de.my.package.Main",
"--StopClass=de.my.package.Main",
"--StopTimeout=300",
"--JvmMs=128",
"--JvmMx=1024",
"--JvmSs=128",
"--LogPath=$RootPath\log",
"--LogPrefix=service",
"--LogLevel=Debug",
"--StdOutput=auto",
"--StdError=auto",
"--StartPath=$RootPath",
"--Startup=auto",
"--LogJniMessages=1"
The log output:
( prunsrv.c:1763) [ 5048] Apache Commons Daemon procrun log initialized.
( prunsrv.c:1767) [ 5048] Apache Commons Daemon procrun (1.2.2.0 64-bit)
started.
( prunsrv.c:621 ) [ 5048] Installing service...
( prunsrv.c:660 ) [ 5048] Installing service 'MyService' name 'My Service'.
( prunsrv.c:694 ) [ 5048] Service 'MyService' installed.
( prunsrv.c:1848) [ 5048] Apache Commons Daemon procrun finished.
( prunsrv.c:1763) [ 7308] Apache Commons Daemon procrun log initialized.
( prunsrv.c:1767) [ 7308] Apache Commons Daemon procrun (1.2.2.0 64-bit)
started.
( prunsrv.c:1677) [ 7308] Running Service 'MyService'...
( prunsrv.c:1448) [ 4548] Inside ServiceMain...
( prunsrv.c:910 ) [ 4548] reportServiceStatusE: dwCurrentState = 2,
dwWin32ExitCode = 0, dwWaitHint = 3000, dwServiceSpecificExitCode = 0.
( prunsrv.c:1203) [ 4548] Starting service...
( javajni.c:216 ) [ 4548] Explicit RuntimeLib specified
'D:\MyService\jre\bin\client\jvm.dll'
( javajni.c:285 ) [ 4548] loading jvm 'D:\MyService\jre\bin\client\jvm.dll'
( javajni.c:795 ) [ 5688] Jvm Option[0] vfprintf
( javajni.c:795 ) [ 5688] Jvm Option[1] --module-path modules
( javajni.c:795 ) [ 5688] Jvm Option[2] --module
de.my.package/de.my.package.Main
( javajni.c:795 ) [ 5688] Jvm Option[3] exit
( javajni.c:795 ) [ 5688] Jvm Option[4] abort
( javajni.c:795 ) [ 5688] Jvm Option[5] -Xms128m
( javajni.c:795 ) [ 5688] Jvm Option[6] -Xmx1024m
( javajni.c:795 ) [ 5688] Jvm Option[7] -Xss128k
( javajni.c:536 ) [ 5688] Unrecognized option: --module-path modules
( javajni.c:806 ) [ 5688] CreateJavaVM Failed with error [-1]
( javajni.c:806 ) [ 5688] Das System kann die angegebene Datei nicht finden.
( javajni.c:1057) [ 5688] Java Worker thread finished : with status = 2
( prunsrv.c:1258) [ 4548] Failed to start Java
( prunsrv.c:1611) [ 4548] ServiceStart returned 4.
( prunsrv.c:910 ) [ 4548] reportServiceStatusE: dwCurrentState = 1,
dwWin32ExitCode = 1066, dwWaitHint = 0, dwServiceSpecificExitCode = 4.
( prunsrv.c:1679) [ 7308] Run service finished.
( prunsrv.c:1848) [ 7308] Apache Commons Daemon procrun finished.
If I change Jvm to java.exe and StartMode to Java the stderr log states:
2020-09-01 18:18:10 Apache Commons Daemon procrun stderr initialized.
NOTE: Picked up JDK_JAVA_OPTIONS: --module-path modules --module
de.my.package/de.my.package.Main
Error: Option --module is not allowed in environment variable
JDK_JAVA_OPTIONS
What am I doing wrong?
JP
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org
Re: prunsrv JPMS support?
Posted by Jan Patrick Lübbert <ma...@jpluebbert.de>.
Am 02.09.20 um 16:25 schrieb Mark Thomas:
> On 01/09/2020 17:31, Jan Patrick Lübbert wrote:
>
> <snip/>
>
>> I tried the JVM mode with the service config (arguments as array in a
>> PowerShell script):
>>
>> "install",
>> "MyService",
>> "--DisplayName=""My Service""",
>> "--JavaHome=""$RootPath\jre""",
>> "--Jvm=""$RootPath\jre\bin\client\jvm.dll""",
>> "--StartMode=jvm",
>> "--StopMode=jvm",
>> "--JvmOptions9=""--module-path modules""",
>> "++JvmOptions9=""--module de.my.package/de.my.package.Main""",
>> "--StartClass=de.my.package.Main",
>> "--StopClass=de.my.package.Main",
>> "--StopTimeout=300",
>> "--JvmMs=128",
>> "--JvmMx=1024",
>> "--JvmSs=128",
>> "--LogPath=$RootPath\log",
>> "--LogPrefix=service",
>> "--LogLevel=Debug",
>> "--StdOutput=auto",
>> "--StdError=auto",
>> "--StartPath=$RootPath",
>> "--Startup=auto",
>> "--LogJniMessages=1"
>>
>> The log output:
>>
>> ( prunsrv.c:1763) [ 5048] Apache Commons Daemon procrun log initialized.
>> ( prunsrv.c:1767) [ 5048] Apache Commons Daemon procrun (1.2.2.0 64-bit)
>> started.
>> ( prunsrv.c:621 ) [ 5048] Installing service...
>> ( prunsrv.c:660 ) [ 5048] Installing service 'MyService' name 'My Service'.
>> ( prunsrv.c:694 ) [ 5048] Service 'MyService' installed.
>> ( prunsrv.c:1848) [ 5048] Apache Commons Daemon procrun finished.
>> ( prunsrv.c:1763) [ 7308] Apache Commons Daemon procrun log initialized.
>> ( prunsrv.c:1767) [ 7308] Apache Commons Daemon procrun (1.2.2.0 64-bit)
>> started.
>> ( prunsrv.c:1677) [ 7308] Running Service 'MyService'...
>> ( prunsrv.c:1448) [ 4548] Inside ServiceMain...
>> ( prunsrv.c:910 ) [ 4548] reportServiceStatusE: dwCurrentState = 2,
>> dwWin32ExitCode = 0, dwWaitHint = 3000, dwServiceSpecificExitCode = 0.
>> ( prunsrv.c:1203) [ 4548] Starting service...
>> ( javajni.c:216 ) [ 4548] Explicit RuntimeLib specified
>> 'D:\MyService\jre\bin\client\jvm.dll'
>> ( javajni.c:285 ) [ 4548] loading jvm 'D:\MyService\jre\bin\client\jvm.dll'
>> ( javajni.c:795 ) [ 5688] Jvm Option[0] vfprintf
>> ( javajni.c:795 ) [ 5688] Jvm Option[1] --module-path modules
>> ( javajni.c:795 ) [ 5688] Jvm Option[2] --module
>> de.my.package/de.my.package.Main
>> ( javajni.c:795 ) [ 5688] Jvm Option[3] exit
>> ( javajni.c:795 ) [ 5688] Jvm Option[4] abort
>> ( javajni.c:795 ) [ 5688] Jvm Option[5] -Xms128m
>> ( javajni.c:795 ) [ 5688] Jvm Option[6] -Xmx1024m
>> ( javajni.c:795 ) [ 5688] Jvm Option[7] -Xss128k
>> ( javajni.c:536 ) [ 5688] Unrecognized option: --module-path modules
>> ( javajni.c:806 ) [ 5688] CreateJavaVM Failed with error [-1]
>> ( javajni.c:806 ) [ 5688] Das System kann die angegebene Datei nicht finden.
>> ( javajni.c:1057) [ 5688] Java Worker thread finished : with status = 2
>> ( prunsrv.c:1258) [ 4548] Failed to start Java
>> ( prunsrv.c:1611) [ 4548] ServiceStart returned 4.
>> ( prunsrv.c:910 ) [ 4548] reportServiceStatusE: dwCurrentState = 1,
>> dwWin32ExitCode = 1066, dwWaitHint = 0, dwServiceSpecificExitCode = 4.
>> ( prunsrv.c:1679) [ 7308] Run service finished.
>> ( prunsrv.c:1848) [ 7308] Apache Commons Daemon procrun finished.
>>
>> If I change Jvm to java.exe and StartMode to Java the stderr log states:
>>
>> 2020-09-01 18:18:10 Apache Commons Daemon procrun stderr initialized.
>> NOTE: Picked up JDK_JAVA_OPTIONS: --module-path modules --module
>> de.my.package/de.my.package.Main
>>
>> Error: Option --module is not allowed in environment variable
>> JDK_JAVA_OPTIONS
>>
>> What am I doing wrong?
>
> At first glance nothing. That is pretty much exactly what I tried first
> when I set this up to test locally. And my test environment isn't work
> either.
>
> The good news is that with a few changes it should be possible to get
> this working. At least, I got my simple test working.
>
> The first change is the module path. As documented in [1] you need to use:
>
> --module-path=modules
>
> (note the addition of the equals)
>
> The second is how you define the main module. As documented in [2] you
> need to use:
>
> -Djdk.module.main=module
>
>
> So my full config was:
>
> prunsrv.exe install
> --DisplayName "Test"
> --JavaHome "C:\java\adopt-14.0.2+12"
> --Jvm "C:\java\adopt-14.0.2+12\bin\server\jvm.dll"
> --JvmOptions ""
> --JvmOptions9
> "--module-path=C:\Users\god\Documents\bin#-Djdk.module.main=test"
> --JvmMs 128
> --JvmMx 256
> --JvmSs 0
> --StopPath "C:\Users\god\Documents\bin"
> --StopClass "org.apache.markt.Test"
> --StopParams ""
> --StopTimeout 0
> --StartPath "C:\Users\god\Documents\bin"
> --StartClass "org.apache.markt.Test"
> --StartParams ""
> --StartMode "jvm"
> --LogPath "C:\Users\god\Documents\bin"
> --LogPrefix "commons-daemon"
> --LogLevel "Debug"
> --StdError "auto"
> --StdOutput "auto"
> --LogJniMessages 0
> --Rotate 0
>
> where the equivalent command line was:
> java --module-path . --module test/org.apache.markt.Test
>
> HTH,
>
> Mark
>
Yes, this is finally a working solution. Thank you very much for your
support!
JP
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org
Re: prunsrv JPMS support?
Posted by Mark Thomas <ma...@apache.org>.
On 01/09/2020 17:31, Jan Patrick Lübbert wrote:
<snip/>
> I tried the JVM mode with the service config (arguments as array in a
> PowerShell script):
>
> "install",
> "MyService",
> "--DisplayName=""My Service""",
> "--JavaHome=""$RootPath\jre""",
> "--Jvm=""$RootPath\jre\bin\client\jvm.dll""",
> "--StartMode=jvm",
> "--StopMode=jvm",
> "--JvmOptions9=""--module-path modules""",
> "++JvmOptions9=""--module de.my.package/de.my.package.Main""",
> "--StartClass=de.my.package.Main",
> "--StopClass=de.my.package.Main",
> "--StopTimeout=300",
> "--JvmMs=128",
> "--JvmMx=1024",
> "--JvmSs=128",
> "--LogPath=$RootPath\log",
> "--LogPrefix=service",
> "--LogLevel=Debug",
> "--StdOutput=auto",
> "--StdError=auto",
> "--StartPath=$RootPath",
> "--Startup=auto",
> "--LogJniMessages=1"
>
> The log output:
>
> ( prunsrv.c:1763) [ 5048] Apache Commons Daemon procrun log initialized.
> ( prunsrv.c:1767) [ 5048] Apache Commons Daemon procrun (1.2.2.0 64-bit)
> started.
> ( prunsrv.c:621 ) [ 5048] Installing service...
> ( prunsrv.c:660 ) [ 5048] Installing service 'MyService' name 'My Service'.
> ( prunsrv.c:694 ) [ 5048] Service 'MyService' installed.
> ( prunsrv.c:1848) [ 5048] Apache Commons Daemon procrun finished.
> ( prunsrv.c:1763) [ 7308] Apache Commons Daemon procrun log initialized.
> ( prunsrv.c:1767) [ 7308] Apache Commons Daemon procrun (1.2.2.0 64-bit)
> started.
> ( prunsrv.c:1677) [ 7308] Running Service 'MyService'...
> ( prunsrv.c:1448) [ 4548] Inside ServiceMain...
> ( prunsrv.c:910 ) [ 4548] reportServiceStatusE: dwCurrentState = 2,
> dwWin32ExitCode = 0, dwWaitHint = 3000, dwServiceSpecificExitCode = 0.
> ( prunsrv.c:1203) [ 4548] Starting service...
> ( javajni.c:216 ) [ 4548] Explicit RuntimeLib specified
> 'D:\MyService\jre\bin\client\jvm.dll'
> ( javajni.c:285 ) [ 4548] loading jvm 'D:\MyService\jre\bin\client\jvm.dll'
> ( javajni.c:795 ) [ 5688] Jvm Option[0] vfprintf
> ( javajni.c:795 ) [ 5688] Jvm Option[1] --module-path modules
> ( javajni.c:795 ) [ 5688] Jvm Option[2] --module
> de.my.package/de.my.package.Main
> ( javajni.c:795 ) [ 5688] Jvm Option[3] exit
> ( javajni.c:795 ) [ 5688] Jvm Option[4] abort
> ( javajni.c:795 ) [ 5688] Jvm Option[5] -Xms128m
> ( javajni.c:795 ) [ 5688] Jvm Option[6] -Xmx1024m
> ( javajni.c:795 ) [ 5688] Jvm Option[7] -Xss128k
> ( javajni.c:536 ) [ 5688] Unrecognized option: --module-path modules
> ( javajni.c:806 ) [ 5688] CreateJavaVM Failed with error [-1]
> ( javajni.c:806 ) [ 5688] Das System kann die angegebene Datei nicht finden.
> ( javajni.c:1057) [ 5688] Java Worker thread finished : with status = 2
> ( prunsrv.c:1258) [ 4548] Failed to start Java
> ( prunsrv.c:1611) [ 4548] ServiceStart returned 4.
> ( prunsrv.c:910 ) [ 4548] reportServiceStatusE: dwCurrentState = 1,
> dwWin32ExitCode = 1066, dwWaitHint = 0, dwServiceSpecificExitCode = 4.
> ( prunsrv.c:1679) [ 7308] Run service finished.
> ( prunsrv.c:1848) [ 7308] Apache Commons Daemon procrun finished.
>
> If I change Jvm to java.exe and StartMode to Java the stderr log states:
>
> 2020-09-01 18:18:10 Apache Commons Daemon procrun stderr initialized.
> NOTE: Picked up JDK_JAVA_OPTIONS: --module-path modules --module
> de.my.package/de.my.package.Main
>
> Error: Option --module is not allowed in environment variable
> JDK_JAVA_OPTIONS
>
> What am I doing wrong?
At first glance nothing. That is pretty much exactly what I tried first
when I set this up to test locally. And my test environment isn't work
either.
The good news is that with a few changes it should be possible to get
this working. At least, I got my simple test working.
The first change is the module path. As documented in [1] you need to use:
--module-path=modules
(note the addition of the equals)
The second is how you define the main module. As documented in [2] you
need to use:
-Djdk.module.main=module
So my full config was:
prunsrv.exe install
--DisplayName "Test"
--JavaHome "C:\java\adopt-14.0.2+12"
--Jvm "C:\java\adopt-14.0.2+12\bin\server\jvm.dll"
--JvmOptions ""
--JvmOptions9
"--module-path=C:\Users\god\Documents\bin#-Djdk.module.main=test"
--JvmMs 128
--JvmMx 256
--JvmSs 0
--StopPath "C:\Users\god\Documents\bin"
--StopClass "org.apache.markt.Test"
--StopParams ""
--StopTimeout 0
--StartPath "C:\Users\god\Documents\bin"
--StartClass "org.apache.markt.Test"
--StartParams ""
--StartMode "jvm"
--LogPath "C:\Users\god\Documents\bin"
--LogPrefix "commons-daemon"
--LogLevel "Debug"
--StdError "auto"
--StdOutput "auto"
--LogJniMessages 0
--Rotate 0
where the equivalent command line was:
java --module-path . --module test/org.apache.markt.Test
HTH,
Mark
[1] https://bugs.openjdk.java.net/browse/JDK-8227497
[2] https://community.oracle.com/thread/4135394
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org