Zack Macomber created WW-4659:
---------------------------------
Summary: 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
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...
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
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)