Petr, Thanks for tip. This is looking very promising as I see Ignite starting in the catalina.out file now. As a note, I added those directives to my bin/setenv.sh script as JAVA_OPTS as opposed to JVM_OPTS as that didn't seem to work. Also, I did have to add the cache-api-1.1.0.jar file to my shared.loader path as I was getting
java.lang.ClassNotFoundException: javax.cache.configuration.Factory I'm not sure if this is unique to my environment or would be required by others using Tomcat with Ignite. Our team will now work through our internal testing to confirm that we can get web session clustering working correctly between multiple Tomcat instances. Thanks, -Eric On Tue, Apr 3, 2018 at 12:23 AM, Petr Ivanov <[email protected]> wrote: > Hi, Eric. > > > Try to add to Tomcat’s JVM_OPTS following directives, please: > --add-exports java.base/jdk.internal.misc=ALL-UNNAMED > --add-exports java.base/sun.nio.ch=ALL-UNNAMED > --add-exports java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED > --add-exports jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED > --add-modules java.xml.bind > > > > On 2 Apr 2018, at 21:38, Eric Ham <[email protected]> wrote: > > Hello, > > From the suggestion on my other thread to try a newer Tomcat, I decided to > spin up Tomcat 8.5.29 with Oracle JDK 9.0.4. I'm attempting to use web > session clustering based on the following pages [1] and [2] as I saw the > 2.4.0 release notes say Java 9 is now supported. I copied the following > jars over for Tomcat to load: > > ignite-core-2.4.0.jar > ignite-log4j-2.4.0.jar > ignite-spring-2.4.0.jar > ignite-web-2.4.0.jar > > However, when I startup Tomcat I get the following error messages (listed > below) in the localhost.2018-04-02.log file. The following 2 lines: > > Caused by: java.lang.RuntimeException: jdk.internal.misc.JavaNioAccess > class is unavailable. > Caused by: java.lang.IllegalAccessException: class > org.apache.ignite.internal.util.GridUnsafe cannot access class > jdk.internal.misc.SharedSecrets (in module java.base) because module > java.base does not export jdk.internal.misc to unnamed module @464a014c > > seem related to [3] IGNITE-7352, which says that it should be fixed in > 2.4.0 to support Java 9. > > Either I'm missing a step or the 7352 fix didn't make it over? Please let > me know what additional information I can provide to help resolve this. > > Regards, > -Eric > > [1] https://ignite.apache.org/releases/latest/javadoc/org/apache > /ignite/startup/servlet/ServletStartup.html > <https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/startup/servlet/ServletStartup.html> > > [2] https://apacheignite-mix.readme.io/docs/web-session-clustering > > [3] https://issues.apache.org/jira/browse/IGNITE-7352 > > 02-Apr-2018 11:27:55.914 INFO [localhost-startStop-1] > org.apache.catalina.core.ApplicationContext.log No Spring > WebApplicationInitializer types detected on classpath > 02-Apr-2018 11:27:56.739 SEVERE [localhost-startStop-1] > org.apache.catalina.core.ApplicationContext.log StandardWrapper.Throwable > java.lang.ExceptionInInitializerError > at org.apache.ignite.internal.util.IgniteUtils.<clinit>( > IgniteUtils.java:759) > at org.apache.ignite.startup.servlet.ServletStartup.init( > ServletStartup.java:138) > at javax.servlet.GenericServlet.init(GenericServlet.java:158) > at org.apache.catalina.core.StandardWrapper.initServlet( > StandardWrapper.java:1144) > at org.apache.catalina.core.StandardWrapper.loadServlet( > StandardWrapper.java:1091) > at org.apache.catalina.core.StandardWrapper.load( > StandardWrapper.java:983) > at org.apache.catalina.core.StandardContext.loadOnStartup( > StandardContext.java:4939) > at org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5249) > at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:150) > at org.apache.catalina.core.ContainerBase.addChildInternal( > ContainerBase.java:754) > at org.apache.catalina.core.ContainerBase.addChild( > ContainerBase.java:730) > at org.apache.catalina.core.StandardHost.addChild( > StandardHost.java:734) > at org.apache.catalina.startup.HostConfig.deployWAR( > HostConfig.java:986) > at org.apache.catalina.startup.HostConfig$DeployWar.run( > HostConfig.java:1857) > at java.base/java.util.concurrent.Executors$RunnableAdapter.call( > Executors.java:514) > at java.base/java.util.concurrent.FutureTask.run( > FutureTask.java:264) > at java.base/java.util.concurrent.ThreadPoolExecutor. > runWorker(ThreadPoolExecutor.java:1167) > at java.base/java.util.concurrent.ThreadPoolExecutor$ > Worker.run(ThreadPoolExecutor.java:641) > at java.base/java.lang.Thread.run(Thread.java:844) > Caused by: java.lang.RuntimeException: jdk.internal.misc.JavaNioAccess > class is unavailable. > at org.apache.ignite.internal.util.GridUnsafe.javaNioAccessObject( > GridUnsafe.java:1459) > at org.apache.ignite.internal.util.GridUnsafe.<clinit>( > GridUnsafe.java:118) > ... 19 more > Caused by: java.lang.IllegalAccessException: class > org.apache.ignite.internal.util.GridUnsafe cannot access class > jdk.internal.misc.SharedSecrets (in module java.base) because module > java.base does not export jdk.internal.misc to unnamed module @464a014c > at java.base/jdk.internal.reflect.Reflection. > newIllegalAccessException(Reflection.java:361) > at java.base/java.lang.reflect.AccessibleObject.checkAccess( > AccessibleObject.java:589) > at java.base/java.lang.reflect.Method.invoke(Method.java:556) > at org.apache.ignite.internal.util.GridUnsafe.javaNioAccessObject( > GridUnsafe.java:1456) > ... 20 more > > 02-Apr-2018 11:27:56.740 SEVERE [localhost-startStop-1] > org.apache.catalina.core.StandardContext.loadOnStartup Servlet [Ignite] > in web application [/base] threw load() exception > java.lang.IllegalAccessException: class > org.apache.ignite.internal.util.GridUnsafe > cannot access class jdk.internal.misc.SharedSecrets (in module java.base) > because module java.base does not export jdk.internal.misc to unnamed > module @464a014c > at java.base/jdk.internal.reflect.Reflection. > newIllegalAccessException(Reflection.java:361) > at java.base/java.lang.reflect.AccessibleObject.checkAccess( > AccessibleObject.java:589) > at java.base/java.lang.reflect.Method.invoke(Method.java:556) > at org.apache.ignite.internal.util.GridUnsafe.javaNioAccessObject( > GridUnsafe.java:1456) > at org.apache.ignite.internal.util.GridUnsafe.<clinit>( > GridUnsafe.java:118) > at org.apache.ignite.internal.util.IgniteUtils.<clinit>( > IgniteUtils.java:759) > at org.apache.ignite.startup.servlet.ServletStartup.init( > ServletStartup.java:138) > at javax.servlet.GenericServlet.init(GenericServlet.java:158) > at org.apache.catalina.core.StandardWrapper.initServlet( > StandardWrapper.java:1144) > at org.apache.catalina.core.StandardWrapper.loadServlet( > StandardWrapper.java:1091) > at org.apache.catalina.core.StandardWrapper.load( > StandardWrapper.java:983) > at org.apache.catalina.core.StandardContext.loadOnStartup( > StandardContext.java:4939) > at org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5249) > at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:150) > at org.apache.catalina.core.ContainerBase.addChildInternal( > ContainerBase.java:754) > at org.apache.catalina.core.ContainerBase.addChild( > ContainerBase.java:730) > at org.apache.catalina.core.StandardHost.addChild( > StandardHost.java:734) > at org.apache.catalina.startup.HostConfig.deployWAR( > HostConfig.java:986) > at org.apache.catalina.startup.HostConfig$DeployWar.run( > HostConfig.java:1857) > at java.base/java.util.concurrent.Executors$RunnableAdapter.call( > Executors.java:514) > at java.base/java.util.concurrent.FutureTask.run( > FutureTask.java:264) > at java.base/java.util.concurrent.ThreadPoolExecutor. > runWorker(ThreadPoolExecutor.java:1167) > at java.base/java.util.concurrent.ThreadPoolExecutor$ > Worker.run(ThreadPoolExecutor.java:641) > at java.base/java.lang.Thread.run(Thread.java:844) > > >
