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-Package
asorg.springframework.web.context.support;resolution:=optional;version="[3.1,5)"
, whileApache ServiceMix :: Bundles :: spring-web (265)
hasExport-Package
asorg.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, tools, and much more.