Hi,

Definitely patch-module are required, my point is to use "regular" java command 
line instead of JDK_JAVA_OPTIONS.
As the wrapper won’t "parse" regular java command line, I guess it should work 
(I have to check the syntax though).

+1 to add some details in KARAF-6439.

Thanks !
Regards
JB

> Le 6 mai 2021 à 16:29, Frank 'S Jegers <frank.sjeg...@ikan.be> a écrit :
> 
> Hi,
>  
> It may work without the --patch-module options, but I assume those options 
> were added for a reason ?
>  
> It works if in karaf-wrapper.conf the option set.JDK_JAVA_OPTIONS= is 
> removed. I added the arguments as JVM Parameters, like this :
> wrapper.java.additional.1=--add-reads=java.xml=java.logging
> wrapper.java.additional.2=--add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED
> wrapper.java.additional.3=--patch-module=java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
> wrapper.java.additional.4=--patch-module=java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-%KARAF_VERSION%.jar
> wrapper.java.additional.5=--add-opens=java.base/java.security=ALL-UNNAMED
> wrapper.java.additional.6=--add-opens=java.base/java.net 
> <http://java.net/>=ALL-UNNAMED
> wrapper.java.additional.7=--add-opens=java.base/java.lang=ALL-UNNAMED
> wrapper.java.additional.8=--add-opens=java.base/java.util=ALL-UNNAMED
> wrapper.java.additional.9=--add-opens=java.naming/javax.naming.spi=ALL-UNNAMED
> wrapper.java.additional.10=--add-opens=java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED
> wrapper.java.additional.11=--add-exports=java.base/sun.net.www.protocol.file=ALL-UNNAMED
> wrapper.java.additional.12=--add-exports=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED
> wrapper.java.additional.13=--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED
> wrapper.java.additional.14=--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED
> wrapper.java.additional.15=--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
> wrapper.java.additional.16=--add-exports=java.base/sun.net.www.content.text=ALL-UNNAMED
> wrapper.java.additional.17=--add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED
> wrapper.java.additional.18=--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
>  
> wrapper.java.additional.19=-Dkaraf.instances=%KARAF_HOME%/instances
> wrapper.java.additional.20=-Dkaraf.home=%KARAF_HOME%
> wrapper.java.additional.21=-Dkaraf.base=%KARAF_BASE%
> wrapper.java.additional.22=-Dkaraf.data=%KARAF_DATA%
> wrapper.java.additional.23=-Dkaraf.etc=%KARAF_ETC%
> wrapper.java.additional.24=-Dkaraf.log=%KARAF_LOG%
> wrapper.java.additional.25=-Dkaraf.restart.jvm.supported=true
> wrapper.java.additional.26=-Djava.io.tmpdir=%KARAF_DATA%/tmp
> wrapper.java.additional.27=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
> wrapper.java.additional.28=-Dcom.sun.management.jmxremote
> wrapper.java.additional.29=-Dkaraf.startLocalConsole=false
> wrapper.java.additional.30=-Dkaraf.startRemoteShell=true
>  
> Note that you can't set
> wrapper.java.additional.3=--patch-module 
> java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
> So with a space between patch-module and java.base, because the wrapper will 
> treat the entire value as 1 argument.
> Nor can you set
> wrapper.java.additional.3=--patch-module
> wrapper.java.additional.4=java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
> Because then the jvm will complain that the option "java.base" is invalid
>  
> You must replace the space with a "=" :
> wrapper.java.additional.3=--patch-module=java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
>  
> I filed a bug report in the AdoptOpenJDK Github : 
> https://github.com/adoptium/adoptium-support/issues/303 
> <https://github.com/adoptium/adoptium-support/issues/303>
> We'll see if anyone picks this up.
>  
> Do you want me to add this information to the KARAF-6439 issue ?
>  
> Regards,
> Frank ‘S Jegers
>  
> From: Jean-Baptiste Onofre [mailto:j...@nanthrax.net] 
> Sent: donderdag 6 mei 2021 6:16
> To: user
> Subject: Re: Can't start karaf using the wrapper on AIX 7.2
>  
> Hi,
>  
> I agree: it seems the patch-module option is not "AIX compliant" ;)
>  
> Does it work without patch module option ?
>  
> Regards
> JB
> 
> 
> Le 5 mai 2021 à 21:11, Frank 'S Jegers <frank.sjeg...@ikan.be 
> <mailto:frank.sjeg...@ikan.be>> a écrit :
>  
> Hi,
>  
> I tried with a freshly downloaded Karaf 4.2.11, generated the wrapper files 
> by executing :
> export JAVA_HOME=/opt/ikan/java/jdk-11.0.11+9
> karaf/bin/shell wrapper:install
>  
> Also tried starting Karaf first, then, from the karaf console, did a
> feature install wrapper
> and
> wrapper:install
>  
> The JAVA_HOME is set in the karaf-wrapper.conf :
> set.default.JAVA_HOME=/opt/ikan/java/jdk-11.0.11+9
>  
> But it still wouldn't start. Turns out there was a wrapper.log after all 
> (wasn't looking in the right place).
>  
> This is the relevant content :
>  
> ERROR  | wrapper  | 2021/05/05 19:21:12 | JVM exited while loading the 
> application.
> INFO   | jvm 5    | 2021/05/05 19:21:12 | NOTE: Picked up JDK_JAVA_OPTIONS: 
> --add-reads=java.xml=java.logging 
> --add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED 
> --patch-module 
> java.base=lib/endorsed/org.apache.karaf.specs.locator-4.2.11.jar 
> --patch-module 
> java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.11.jar --add-opens 
> java.base/java.security=ALL-UNNAMED --add-opens java.base/java.net 
> <http://java.net/>=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED 
> --add-opens java.base/java.util=ALL-UNNAMED --add-opens 
> java.naming/javax.naming.spi=ALL-UNNAMED --add-opens 
> java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.file=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.content.text=ALL-UNNAMED 
> --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED 
> --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
> INFO   | jvm 5    | 2021/05/05 19:21:12 | NOTE: Picked up JDK_JAVA_OPTIONS: 
> --add-reads=java.xml=java.logging 
> --add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED 
> --patch-module 
> java.base=lib/endorsed/org.apache.karaf.specs.locator-4.2.11.jar 
> --patch-module 
> java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.11.jar --add-opens 
> java.base/java.security=ALL-UNNAMED --add-opens java.base/java.net 
> <http://java.net/>=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED 
> --add-opens java.base/java.util=ALL-UNNAMED --add-opens 
> java.naming/javax.naming.spi=ALL-UNNAMED --add-opens 
> java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.file=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED 
> --add-exports=java.base/sun.net.www.content.text=ALL-UNNAMED 
> --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED 
> --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
> INFO   | jvm 5    | 2021/05/05 19:21:12 | Error occurred during 
> initialization of VM
> INFO   | jvm 5    | 2021/05/05 19:21:12 | Cannot specify java.base more than 
> once to --patch-module
>  
> It looks like I'm experiencing issue KARAF-6439 
> (https://issues.apache.org/jira/browse/KARAF-6439 
> <https://issues.apache.org/jira/browse/KARAF-6439> )
>  
> After some testing it appears that this problem is caused by the handling of 
> the OpenJDK Java versions for AIX of the JDK_JAVA_OPTIONS environment 
> variable :
> If you set
> export JDK_JAVA_OPTIONS="--patch-module java.base=dummy.jar"
> and then run any Java class, like :
> java Dummy
> it will fail to launch a JVM, complaining that "java.base specified more than 
> once to --patch-module"
>  
> I tested with AdoptOpenJDK-11.0.11+9 (both Hotspot and OpenJ9) and with IBM 
> jdk 11 (Eclipse OpenJ9 VM 11.0.10.0-IBM (build openj9-0.24.0, JRE 11 AIX 
> ppc64-64-Bit Compressed References 20210202_3 (JIT enabled, AOT enabled)). 
> All produce similar errors for this case.
>  
> I didn't find an Oracle Java for the AIX platform, nor a compatible jdk from 
> Amazon Coretto or Azul Zulu.
>  
> The only option I see for the moment is removing the use of the 
> JDK_JAVA_OPTIONS environment variable, and putting all those options as 
> wrapper.java.additional.xx JVM parameters. I'll test that, unless anyone has 
> any better ideas ?
>  
> Any input greatly appreciated.
>  
> Grtz,
> Frank 'S Jegers.
>  
> From: Jean-Baptiste Onofre [mailto:j...@nanthrax.net 
> <mailto:j...@nanthrax.net>] 
> Sent: woensdag 5 mei 2021 16:09
> To: user
> Subject: Re: Can't start karaf using the wrapper on AIX 7.2
>  
> Hi Frank
>  
> Did you try to install wrapper once karaf is started ?
> Do you have the JDK define in wrapper.conf ?
>  
> Regards
> JB
> 
> 
> 
> Le 5 mai 2021 à 15:49, Frank 'S Jegers <frank.sjeg...@ikan.be 
> <mailto:frank.sjeg...@ikan.be>> a écrit :
>  
> Hi,
>  
> I'm trying to start karaf using the wrapper script on AIX 7.2.
> Generated the wrapper files by executing :
> karaf/bin/shell wrapper:install -n almagent59 -d "IKAN\ ALM\ 5.9\ Agent" -D 
> "IKAN\ ALM\ 5.9\ Agent\ Daemon"
>  
> Then created a link to the sysV script in /etc/rc.d/init.d/
> sudo ln -s /opt/ikan/almagent59/daemons/agent/karaf/bin/almagent59-service 
> /etc/rc.d/init.d/
>  
> When I run it with "sudo /etc/rc.d/init.d/almagent59-service start", I get 
> the output :
> Starting IKAN ALM 5.9 Agent...
>  
> and then nothing : no Java process, no wrapper.log, no lock file, no 
> karaf.pid file
>  
> In karaf/etc/almagent59-wrapper.conf, I set "wrapper.console.loglevel=DEBUG"
> Then I get the additional output :
> wrapper  | Working directory set to: /opt/ikan/almagent59/daemons/agent/karaf
> wrapper  | Spawning intermediate process...
>  
> I edited the almagent59-service, and echoed the command that gets executed, 
> which is :
> /opt/ikan/almagent59/daemons/agent/karaf/bin/almagent59-wrapper 
> /opt/ikan/almagent59/daemons/agent/karaf/etc/almagent59-wrapper.conf 
> wrapper.syslog.ident=almagent59 
> wrapper.pidfile=/opt/ikan/almagent59/daemons/agent/karaf/almagent59.wrapper.pid
>  wrapper.daemonize=TRUE
>  
> When I launch Karaf using karaf/bin/karaf, then Karaf starts ok and our 
> application seems to function.
>  
> I've followed similar steps as above to launch karaf using the wrapper script 
> on several Debian and Redhat based Linuxes, using both the sysV script and 
> the systemd unit file, and managed to get it working there. But not so on AIX.
>  
> Any ideas ?
>  
> Karaf version : 4.2.8
>  
> Java version : 
> openjdk version "11.0.11" 2021-04-20
> OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
> OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)
>  
> AIX version : AIX 7.2 7200-03-02-1846
>  
> Thank you,
> Frank 'S Jegers

Reply via email to