This week's book giveaway is in the Kotlin forum.
We're giving away four copies of Kotlin in Action and have Dmitry Jemerov & Svetlana Isakova on-line!
See this thread for details.
Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

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

Balasubramanian Krishnaswamy
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

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.

  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!