java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory

Sean R picture Sean R · Sep 8, 2009 · Viewed 179.5k times · Source

I have actually figured this problem out, but it took me days, so I thought I would paste my solution here to aide others.

I am using Fedora 11, and in Eclipse I tried adding a Tomcat 6 server and starting it. I would get the following error:

'Starting Tomcat v6.0 Server at localhost' has encountered a problem.

Server Tomcat v6.0 Server at localhost failed to start.

Then in my console I got the following:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
  at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:54)
Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
  at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
  ... 1 more
Could not find the main class: org.apache.catalina.startup.Bootstrap. Program will exit.

I'll post the solution in an answer below.

Answer

Sean R picture Sean R · Sep 8, 2009

I found the solution here: http://forums.opensuse.org/applications/391114-tomcat6-eclipse-not-working.html

  1. In Eclipse, Open the "Server" tab.
  2. Double click on the "Tomcat6" entry to see the configuration.
  3. Then click on the "Open launch configuration" link in the "General information" block.
  4. In the dialog, select the "Classpath" tab.
  5. Click the "Add external jar" button.
  6. Select the file "/usr/share/tomcat6/bin/tomcat-juli.jar"
  7. Close the dialog.
  8. Start tomcat 6 from Eclipse.

Hopefully posting it here will help some poor soul.