NoClassDefFoundError for class WebApplicationContextUtils when CXFServlet is used from web.xml in Fuse
Issue
- When installing a WAR OSGi bundle, which is an extract from one of our applications, the following error occurs:
2016-04-04 12:30:21,685 | WARN [pool-8-thread-1 ] | AbstractLifeCycle | FAILED HttpServiceContext{httpContext=WebAppHttpContext{wacu-testcase-frontend - 268}}: java.lang.NoClassDefFoundError: org/springframework/web/context/support/WebApplicationContextUtils
java.lang.NoClassDefFoundError: org/springframework/web/context/support/WebApplicationContextUtils
at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:54)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:76)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:532)
at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:344)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)[86:org.eclipse.jetty.aggregate.jetty-all-server:8.1.18.v20150929]
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:791)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doStart(HttpServiceContext.java:222)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)[86:org.eclipse.jetty.aggregate.jetty-all-server:8.1.18.v20150929]
at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl$1.start(JettyServerImpl.java:204)[93:org.ops4j.pax.web.pax-web-jetty:3.2.7]
at org.ops4j.pax.web.service.internal.HttpServiceStarted.end(HttpServiceStarted.java:1032)[92:org.ops4j.pax.web.pax-web-runtime:3.2.7]
at org.ops4j.pax.web.service.internal.HttpServiceProxy.end(HttpServiceProxy.java:422)[92:org.ops4j.pax.web.pax-web-runtime:3.2.7]
at org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.end(RegisterWebAppVisitorWC.java:341)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.java:678)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.register(WebAppPublisher.java:237)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.addingService(WebAppPublisher.java:182)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.addingService(WebAppPublisher.java:135)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932)[karaf.jar:2.4.0.redhat-621090]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)[karaf.jar:2.4.0.redhat-621090]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)[karaf.jar:2.4.0.redhat-621090]
at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)[karaf.jar:2.4.0.redhat-621090]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:317)[karaf.jar:2.4.0.redhat-621090]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)[karaf.jar:2.4.0.redhat-621090]
at org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAppPublisher.java:101)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.ops4j.pax.web.extender.war.internal.WebObserver.deploy(WebObserver.java:213)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.ops4j.pax.web.extender.war.internal.WebObserver$1.doStart(WebObserver.java:175)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.ops4j.pax.web.extender.war.internal.extender.SimpleExtension.start(SimpleExtension.java:58)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at org.ops4j.pax.web.extender.war.internal.extender.AbstractExtender$1.run(AbstractExtender.java:266)[244:org.ops4j.pax.web.pax-web-extender-war:3.2.7]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_71]
at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_71]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)[:1.7.0_71]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)[:1.7.0_71]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_71]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_71]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_71]
Caused by: java.lang.ClassNotFoundException: org.springframework.web.context.support.WebApplicationContextUtils not found by org.apache.cxf.cxf-rt-transports-http [96]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556)[org.apache.felix.framework-4.4.1.jar:]
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77)[org.apache.felix.framework-4.4.1.jar:]
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993)[org.apache.felix.framework-4.4.1.jar:]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_71]
... 36 more
- The
Apache CXF Runtime HTTP Transport (96)hasImport-Packageasorg.springframework.web.context.support;resolution:=optional;version="[3.1,5)", whileApache ServiceMix :: Bundles :: spring-web (265)hasExport-Packageasorg.springframework.web.context.support version=3.2.12.RELEASE. - The bundle is installed which uses
feature spring-dm-web. - It seems to be triggered from including CXFServlet in web.xml - simply removing that servlet from web.xml makes it come up correctly during installation.
Environment
- Red Hat JBoss Fuse
- 6.2.1
- spring-dm-web
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
