[ https://issues.apache.org/jira/browse/WW-4659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zack Macomber closed WW-4659. ----------------------------- Resolution: Not A Problem > Exception starting filter struts2 java.lang.IncompatibleClassChangeError: > Implementing class > --------------------------------------------------------------------------------------------- > > Key: WW-4659 > URL: https://issues.apache.org/jira/browse/WW-4659 > Project: Struts 2 > Issue Type: Bug > Components: Dispatch Filter > Affects Versions: 2.3.28 > Environment: Ubuntu 16.04 LTS, JDK 7, Tomcat 8 > Reporter: Zack Macomber > Priority: Blocker > Fix For: 2.3.31 > > > My code compiles fine and my app deploys to Tomcat 8 but I'm getting the > following error in my Tomcat localhost log when the app attempts to start. > Any ideas on how to resolve this (or even how to get further debug info for > where the issue is)? > I have enabled FINE logging on the localhost log and found several other > filters starting with no exceptions (see below updated log output). Why is > the struts2 filter specifically having issues and all of these other filters > aren't? > Also as a test, I commented out the struts2 filter > (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter for > me) and the application installs and starts with no issues. So, the problem > is certainly localized to the struts2 filter. > from my tomcat localhost log... > {noformat} > 13-Jul-2016 16:22:34.847 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.listenerStart Sending application > start events > 13-Jul-2016 16:22:35.225 INFO [http-nio-8080-exec-1] > org.apache.catalina.core.ApplicationContext.log Initializing Spring root > WebApplicationContext > 13-Jul-2016 16:22:36.224 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStart Starting filters > 13-Jul-2016 16:22:36.224 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStart Starting filter > 'ApplicationInitFilter' > 13-Jul-2016 16:22:53.465 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStart Starting filter > 'monitoring' > 13-Jul-2016 16:22:53.846 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStart Starting filter 'Tomcat > WebSocket (JSR356) Filter' > 13-Jul-2016 16:22:53.846 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStart Starting filter > 'springSecurityFilterChain' > 13-Jul-2016 16:22:53.848 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStart Starting filter > 'javamelody' > 13-Jul-2016 16:22:53.848 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStart Starting filter > 'struts2' > 13-Jul-2016 16:22:54.534 SEVERE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStart Exception starting > filter struts2 > java.lang.IncompatibleClassChangeError: Implementing class > at java.lang.ClassLoader.defineClass1(Native Method) > at java.lang.ClassLoader.defineClass(ClassLoader.java:800) > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > at > org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2541) > at > org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:858) > at > org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1301) > at > org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166) > at java.lang.ClassLoader.defineClass1(Native Method) > at java.lang.ClassLoader.defineClass(ClassLoader.java:800) > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > at > org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2541) > at > org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:858) > at > org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1301) > at > org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166) > at > org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:416) > at > org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:397) > at > org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:354) > at > org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53) > at > com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:274) > at > com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) > at > org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:970) > at > org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:438) > at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:482) > at > org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) > at > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) > 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:4689) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5329) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) > at > org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092) > at > org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473) > at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1612) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) > at > com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) > at > org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1451) > at > org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:897) > at > org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:335) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > at > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > at > org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) > at > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099) > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Thread.java:745) > 13-Jul-2016 16:22:54.541 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStop Stopping filters > 13-Jul-2016 16:22:54.541 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStop Stopping filter > 'ApplicationInitFilter' > 13-Jul-2016 16:22:54.564 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStop Stopping filter > 'monitoring' > 13-Jul-2016 16:22:54.781 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStop Stopping filter 'Tomcat > WebSocket (JSR356) Filter' > 13-Jul-2016 16:22:54.781 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStop Stopping filter > 'javamelody' > 13-Jul-2016 16:22:54.781 FINE [http-nio-8080-exec-1] > org.apache.catalina.core.StandardContext.filterStop Stopping filter > 'springSecurityFilterChain' > 13-Jul-2016 16:22:54.781 INFO [http-nio-8080-exec-1] > org.apache.catalina.core.ApplicationContext.log Closing Spring root > WebApplicationContext > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)