Classloading problem "NoClassDefFoundError: net/sf/ehcache/Ehcache" when using CXF library with Ehcache
Issue
ClassNotfoundException(CNF) when depending on JBoss CXF Module and packaging Ehcache library inWEB-INF/libwhere Spring is also used.- In the initial configuration of our Web Application we use
ehcache.2.7.0.jarinWEB-INF/lib(we use Spring and ehcache for same utilities). Using CXF for Web Services calls, at runtime we have the following exception:
java.lang.NoClassDefFoundError: net/sf/ehcache/Ehcache
Full stacktrace
java.lang.NoClassDefFoundError: net/sf/ehcache/Ehcache
at org.apache.cxf.ws.security.tokenstore.EHCacheTokenStoreFactory.newTokenStore(EHCacheTokenStoreFactory.java:34)
at org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider.createTokenStore(IssuedTokenInterceptorProvider.java:107)
at org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider.getTokenStore(IssuedTokenInterceptorProvider.java:116)
at org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleDelegation(IssuedTokenInterceptorProvider.java:232)
at org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.issueToken(IssuedTokenInterceptorProvider.java:448)
at org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:149)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
at $Proxy48.zCDAGCOOPITCUSTGETLIST(Unknown Source)
at com.test.application.SAML2StateLess.methodA(SAML2StateLess.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
.. .. ..
Caused by: java.lang.ClassNotFoundException: net.sf.ehcache.Ehcache from [Module "org.apache.cxf.impl:main" from local module loader @51ab8a5 (finder: local module finder @1d505b41 (roots: /opt/jboss-eap-6.1/modules,/opt/jboss-eap-6.1/modules/system/layers/base))]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
... 93 more
Environment
Red Hat JBoss Enterprise Application Platform (EAP) 6.1.0
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.
