You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Eric Ham <ha...@gmail.com> on 2018/04/02 18:38:55 UTC

2.4.0 with Tomcat 8.5 and Java 9

 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)

Re: 2.4.0 with Tomcat 8.5 and Java 9

Posted by Petr Ivanov <mr...@gmail.com>.
Eric,

Glad it helped!
And no, I guess that won’t be unique only for your environment.

Thanks for sharing your successful run configuration — hope it helps other users adopt Ignite to theirs environment as mush as it possible for now.
Also, if possible, please, share with us the results of web session clustering testing as they finish — looking forward to good news! 



> On 3 Apr 2018, at 21:03, Eric Ham <ha...@gmail.com> wrote:
> 
> 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 <mr.weider@gmail.com <ma...@gmail.com>> 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 <http://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 <ham.eric@gmail.com <ma...@gmail.com>> 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 <https://apacheignite-mix.readme.io/docs/web-session-clustering>
>> 
>> [3] https://issues.apache.org/jira/browse/IGNITE-7352 <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)
>> 
> 
> 


Re: 2.4.0 with Tomcat 8.5 and Java 9

Posted by Eric Ham <ha...@gmail.com>.
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 <mr...@gmail.com> 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 <ha...@gmail.com> 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)
>
>
>

Re: 2.4.0 with Tomcat 8.5 and Java 9

Posted by Petr Ivanov <mr...@gmail.com>.
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 <ha...@gmail.com> 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 <https://apacheignite-mix.readme.io/docs/web-session-clustering>
> 
> [3] https://issues.apache.org/jira/browse/IGNITE-7352 <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)
>