title: java.lang.NoClassDefFoundError :: Class present at the given path in Tomcat
body: <p>I am currently facing with a problem where I am running a Jasper report application.</p>
  
  <p>After invoking a report generation request I am facing
   <code>java.lang.NoClassDefFoundError</code></p>
  
  <p>for an application class e.g. <code>com.abcd.framework.web.servicelocator.ServiceLocator</code></p>
  
  <p>I verified that the class is present at the appropriate path under the <code>tomcat/WEB-INF/classes</code> folder.</p>
  
  <p>I also enabled Tomcat classloader logs with</p>
  
  <pre><code>JAVA_OPTS = -XX:+TraceClassLoading -XX:+TraceClassUnloading
  </code></pre>
  
  <p>the relevant log:
  <code>[Loaded com.abcd.framework.web.servicelocator.ServiceLocator from file:/C:/3.0/tomcat-6.0-Jasper/webapps/jasperserver-pro/WEB-INF/classes/com/abcd/framework/web/servicelocator/ServiceLocator.class]</code></p>
  
  <p>I am not able to figure out why, despite the class is successfully loaded, am getting error.</p>
  
  <p>Appreciate your help</p>
  
  <p>Thanks</p>
  
  <p>Added Stack trace below</p>
  
  <pre><code>&gt; 14:43:28,538 ERROR ManagementServiceImpl,http-30880-1:1294 - caught
  &gt; Throwable exception: java.lang.NoClassDefFoundError: Could not
  &gt; initialize class com.abcd.framework.web.servicelocator.ServiceLocator
  &gt; com.jaspersoft.jasperserver.api.JSException:
  &gt; java.lang.NoClassDefFoundError: Could not initialize class
  &gt; com.abcd.framework.web.servicelocator.ServiceLocator  at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:497)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.executeReportUnitRequest(EngineServiceImpl.java:1666)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.domain.impl.ReportUnitRequest.execute(ReportUnitRequest.java:67)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.execute(EngineServiceImpl.java:399)
  &gt;   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at
  &gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  &gt;   at
  &gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  &gt;   at java.lang.reflect.Method.invoke(Method.java:601)     at
  &gt; org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
  &gt;   at
  &gt; org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
  &gt;   at
  &gt; com.jaspersoft.ji.license.LicenseCheckAspect.runReport(LicenseCheckAspect.java:113)
  &gt;   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at
  &gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  &gt;   at
  &gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  &gt;   at java.lang.reflect.Method.invoke(Method.java:601)     at
  &gt; org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
  &gt;   at
  &gt; org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
  &gt;   at
  &gt; org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
  &gt;   at
  &gt; org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
  &gt;   at
  &gt; org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
  &gt;   at $Proxy210.execute(Unknown Source)    at
  &gt; com.jaspersoft.ji.adhoc.service.AdhocEngineServiceImpl.execute(AdhocEngineServiceImpl.java:2243)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.ws.axis2.ManagementServiceImpl.runReport(ManagementServiceImpl.java:1200)
  &gt;   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at
  &gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  &gt;   at
  &gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  &gt;   at java.lang.reflect.Method.invoke(Method.java:601)     at
  &gt; org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
  &gt;   at
  &gt; org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
  &gt;   at
  &gt; com.jaspersoft.ji.license.LicenseCheckAspect.executeMSCall(LicenseCheckAspect.java:118)
  &gt;   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at
  &gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  &gt;   at
  &gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  &gt;   at java.lang.reflect.Method.invoke(Method.java:601)     at
  &gt; org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
  &gt;   at
  &gt; org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
  &gt;   at
  &gt; org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
  &gt;   at
  &gt; org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
  &gt;   at
  &gt; org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
  &gt;   at $Proxy267.runReport(Unknown Source)  at
  &gt; com.jaspersoft.jasperserver.ws.axis2.ManagementService.runReport(ManagementService.java:240)
  &gt;   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at
  &gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  &gt;   at
  &gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  &gt;   at java.lang.reflect.Method.invoke(Method.java:601)     at
  &gt; org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
  &gt;   at
  &gt; org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
  &gt;   at
  &gt; org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
  &gt;   at
  &gt; org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
  &gt;   at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)     at
  &gt; org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)   at
  &gt; org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
  &gt;   at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)    at
  &gt; org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
  &gt;   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)     at
  &gt; org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
  &gt;   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)     at
  &gt; org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  &gt;   at
  &gt; org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:399)
  &gt;   at
  &gt; org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
  &gt;   at
  &gt; org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
  &gt;   at
  &gt; org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; com.jaspersoft.ji.license.JILicenseFilter.doFilter(JILicenseFilter.java:66)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
  &gt;   at
  &gt; org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.metadata.user.service.impl.MetadataAuthenticationProcessingFilter.doFilter(MetadataAuthenticationProcessingFilter.java:139)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.metadata.user.service.impl.PasswordExpirationProcessingFilter.doFilter(PasswordExpirationProcessingFilter.java:85)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.multipleTenancy.MTBasicProcessingFilter.doFilterHttp(MTBasicProcessingFilter.java:180)
  &gt;   at
  &gt; org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.metadata.user.service.impl.JIPortletAuthenticationProcessingFilter.doFilter(JIPortletAuthenticationProcessingFilter.java:81)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.logging.filter.BasicLoggingFilter.doFilter(BasicLoggingFilter.java:53)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
  &gt;   at
  &gt; org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
  &gt;   at
  &gt; org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:188)
  &gt;   at
  &gt; org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)
  &gt;   at
  &gt; org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  &gt;   at
  &gt; org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:67)
  &gt;   at
  &gt; org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
  &gt;   at
  &gt; org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
  &gt;   at
  &gt; org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  &gt;   at
  &gt; org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.war.P3PFilter.doFilter(P3PFilter.java:43)
  &gt;   at
  &gt; org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  &gt;   at
  &gt; org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  &gt;   at
  &gt; org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  &gt;   at
  &gt; org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  &gt;   at
  &gt; org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
  &gt;   at
  &gt; org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  &gt;   at
  &gt; org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  &gt;   at
  &gt; org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  &gt;   at
  &gt; org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
  &gt;   at
  &gt; org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
  &gt;   at
  &gt; org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
  &gt;   at
  &gt; org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
  &gt;   at java.lang.Thread.run(Thread.java:722) Caused by:
  &gt; java.lang.NoClassDefFoundError: Could not initialize class
  &gt; com.abcd.framework.web.servicelocator.ServiceLocator  at
  &gt; com.abcd.myproject.service.ReportProcessingService.fetchReportRecords(ReportProcessingService.java:810)
  &gt;   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at
  &gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  &gt;   at
  &gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  &gt;   at java.lang.reflect.Method.invoke(Method.java:601)     at
  &gt; org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
  &gt;   at
  &gt; org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
  &gt;   at
  &gt; org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
  &gt;   at $Proxy268.fetchReportRecordsForCTR275(Unknown Source)    at
  &gt; com.abcd.myproject.ReportDataSourceServiceImpl.setReportParameterValues(ReportDataSourceServiceImpl.java:79)
  &gt;   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at
  &gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  &gt;   at
  &gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  &gt;   at java.lang.reflect.Method.invoke(Method.java:601)     at
  &gt; org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
  &gt;   at
  &gt; org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:50)
  &gt;   at
  &gt; org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
  &gt;   at
  &gt; org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
  &gt;   at $Proxy315.setReportParameterValues(Unknown Source)   at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1463)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:874)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:754)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:733)
  &gt;   at
  &gt; com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:488)
  &gt;   ... 115 more
  </code></pre>