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

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

    [ https://issues.apache.org/jira/browse/WW-4706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15628053#comment-15628053 ] 

Lukasz Lenart edited comment on WW-4706 at 11/2/16 7:36 AM:
------------------------------------------------------------

Hi Lukasz,

Thanks for reply. After I applied 2.2.3 the previous exception disappeared. However I got another exception:

{noformat}
02-Nov-2016 13:45:45.997 SEVERE [http-nio-8080-exec-3] com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error Unable to read class [com.vaannila.action.WelcomeUserAction]
 java.lang.ArrayIndexOutOfBoundsException: 3145
        at org.objectweb.asm.ClassReader.readClass(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:780)
        at com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:165)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:376)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:334)
        at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:215)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:380)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)
        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.core.ContainerBase.addChildInternal(ContainerBase.java:726)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:951)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:471)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1613)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-ea/Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-ea/NativeMethodAccessorImpl.java:62)
{noformat}

Also I attached  the updated war and catalina.out. Pls help me on this.


was (Author: liangzzhang):
Hi Lukasz,

Thanks for reply. After I applied 2.2.3 the previous exception disappeared. However I got another exception:
02-Nov-2016 13:45:45.997 SEVERE [http-nio-8080-exec-3] com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error Unable to read class [com.vaannila.action.WelcomeUserAction]
 java.lang.ArrayIndexOutOfBoundsException: 3145
        at org.objectweb.asm.ClassReader.readClass(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.objectweb.asm.ClassReader.accept(Unknown Source)
        at com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:780)
        at com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:165)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:376)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:334)
        at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:215)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:380)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)
        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.core.ContainerBase.addChildInternal(ContainerBase.java:726)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:951)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:471)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1613)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-ea/Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-ea/NativeMethodAccessorImpl.java:62)

Also I attached  the updated war and catalina.out. Pls help me on this.

> 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
>             Fix For: 2.2.3
>
>         Attachments: Struts223JDK9Example.war, Struts2Example.war, catalina.out, struts2example.zip
>
>
> 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:
> {noformat}
>     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
> {noformat}
> 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)