This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Java Interview Guide and have Anthony DePalma on-line!
See this thread for details.
The moose likes Tomcat and the fly likes Class loading issue when Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Products » Tomcat
Bookmark "Class loading issue when "Package" names are same (WEB-INF/classes and WEB-INF/lib)" Watch "Class loading issue when "Package" names are same (WEB-INF/classes and WEB-INF/lib)" New topic

Class loading issue when "Package" names are same (WEB-INF/classes and WEB-INF/lib)

Balasubramanian Krishnaswamy

Joined: Jun 26, 2007
Posts: 24

I am getting a java.lang.NoClassDefFoundError for an application level class called MyAction.

Brief History:
My Project deployable is an EAR. Though its an EAR it has only MDB's and no EJB's. Heart of the program is in WAR.
As it is an EAR it has APP-INF/lib folder and inside which it has many application level and 3rd party jars.

I am doing an exercise to deploy the EAR in Tomcat without the MDB's (precisely only the WAR file). When I deploy in Tomcat I moved all my jar files from APP-INF/lib to WEB-INF/lib of my war file.

I checked in the Tomcat documentation and its mentioned that the order of class loading is:

Bootstrap classes of your JVM
System class loader classses (described above)
/WEB-INF/classes of your web application ---com.test("MyAction" not available) -- Tomcat looks here and throws error.
/WEB-INF/lib/*.jar of your web application --com.test.MyAction (available in core.jar) -- Class available here must get loaded. (Note: the package names are same)

In my MANIFEST.MF of the WAR file, I see the core.jar is included in the classpath.

Please help me get rid of this java.lang.NoClassDefFoundError.

I agree. Here's the link:
subject: Class loading issue when "Package" names are same (WEB-INF/classes and WEB-INF/lib)
It's not a secret anymore!