Liang ZHANG created WW-4706:
-------------------------------

             Summary: Struts2.2 with jdk9 throws exceptions
                 Key: WW-4706
                 URL: https://issues.apache.org/jira/browse/WW-4706
             Project: Struts 2
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.2.1
            Reporter: Liang ZHANG


The test case struts2example.war use struts-core 2.2.1 and xwork2.2.1. It
works with jdk8 & struts 2.2.1. But when we build the war with jdk9 and deploy 
the war to tomcat9 or jetty9.3 with JAVA_HOME={jdk9_b141_home}. The deployment 
got exceptions:
1) JDK9_b141 tomcat9:
    01-Nov-2016 11:21:38.641 SEVERE [http-nio-8080-exec-6] 
com.opensymphony.xwork2.util.logging.jdk.JdkLogger.error Dispatcher 
initialization failed
 java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at 
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:295)
        at 
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:431)
        at 
com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:207)
        at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51)
        at 
com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93)
        at 
com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487)
        at 
com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484)
        at 
com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574)
        at 
com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484)
        at 
com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:252)
        at 
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
        at 
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
        at 
org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
        at 
org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
        at 
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
        at 
org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
        at 
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
        at 
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
        at 
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4579)
        at 
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5225)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
        at 
org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1316)
        at 
org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:669)
        at 
org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:217)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:232)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at 
org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at 
org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:105)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:618)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1078)
        at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:760)
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1524)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at 
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:293)
        ... 53 more
Caused by: java.lang.ExceptionInInitializerError
        at 
com.opensymphony.xwork2.ognl.OgnlValueStackFactory.setContainer(OgnlValueStackFactory.java:85)
        ... 58 more
Caused by: java.lang.IllegalArgumentException: Javassist library is missing in 
classpath! Please add missed dependency!
        at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165)
        ... 59 more
Caused by: java.lang.ClassNotFoundException: javassist.ClassPool
        at 
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1311)
        at 
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1145)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:259)
        at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:162)
        ... 59 more

2) JDK9_b141 jetty9.3:
java.lang.RuntimeException: Error scanning file WelcomeUserAction.class
        at 
org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:722)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:699)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:699)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:699)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:844)
        at 
org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
        at 
org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:546)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
        at java.lang.Thread.run(java.base@9-ea/Thread.java:843)
Caused by:
java.lang.IllegalArgumentException
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at 
org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:977)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:715)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:699)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:699)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:699)
        at 
org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:844)
        at 
org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
        at 
org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:546)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
        at java.lang.Thread.run(java.base@9-ea/Thread.java:843)
2016-11-01 14:43:34.790:INFO:oejs.AbstractConnector:main: Started 
ServerConnector@7b993c65{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2016-11-01 14:43:34.791:INFO:oejs.Server:main: Started @1953ms

It looks like the asm boundle with struts 2.2.1 does not support jdk9. Is this 
true? I replaced the libs of the struts2.2.1 jars with struts2.3.31 jars. The 
tomcat9 and jetty9.3 still throw exception.

Could you confirm is struts2 support jdk9? If not, which version of struts 
support jdk9?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to