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