You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Liang ZHANG (JIRA)" <ji...@apache.org> on 2016/11/01 07:01:07 UTC

[jira] [Updated] (WW-4706) Struts2.2 with jdk9 throws exceptions

     [ https://issues.apache.org/jira/browse/WW-4706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Liang ZHANG updated WW-4706:
----------------------------
    Attachment: Struts2Example.war

test case build with jdk9_b141

> 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
>         Attachments: Struts2Example.war
>
>
> 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)