2 Replies Latest reply on Jun 13, 2007 10:57 AM by Peter Johnson

    Baffling NoClassDefFoundError Error

    Greg Zoller Newbie


      I'm writing a Seam application using JBoss 4.0.5.GA and Seam 1.2.

      I've hit a wall with a problem loading Apache POI. I've configured my build so that the POI.jar is copied into my app's WAR/lib directory and confirmed that its copied there.

      When I run my webapp and get to the part that accesses the POI classes I get something like this in my JBoss console:

      Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/POIFSFileSystem
       at com.paragon.pgv.PhoneListBean.readPhoneFile(PhoneListBean.java:81)
       at com.paragon.pgv.PhoneListBean.init(PhoneListBean.java:112)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
       at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
       ... 120 more

      I've also tried putting the POI.jar into the root project EAR directory but that didn't help.

      To ensure that POI.jar wasn't bad or incomplete I wrote a simple command-line app to exercise the same code my webapp would call using POI, and that worked fine, so I'm not inclined to suspect the jar.

      On startup JBoss didn't seam to report anything out of the ordinary or alarming (no partial EAR loads, dependency complaints, exceptions, etc.)

      The other weird thing is that I've added a couple of other unrelated JARs to my application for other purposes (into WAR/lib) with no issues.

      Any ideas?