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

182,161

Solution 1

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.

Solution 2

I copied the contents of the "C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf" directory to the "workspace\Servers\Tomcat v6.0 Server at localhost-config" directory for Eclipse. I refreshed the "Servers\Tomcat v6.0 Server at localhost-config" folder in the Eclipse Project Explorer and then everything was good.

Solution 3

  1. install tomcat

    # yum install tomcat6*

  2. edit tomcat conf file

    # vim /etc/tomcat6/tomcat-users.xml

something like:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="TomcatAdmin" password="tomcat" roles="admin,manager"/>
</tomcat-users>
  1. create root directory for your J2EE project, example:

    $ mkdir -p ~/Project/java/

  2. do symbolic link, /usr/share/tomcat6/webapps/ to ~/Project/java/

    # ln -s /home//Project/java//dist/.war /usr/share/tomcat6/webapps/.war

Note: war archive file is created automatcaly when you use netbeans

0r you can do:

# ln -s /home/<login>/Project/java/<myProject>/webapps /usr/share/tomcat6/webapps/<myProject>
  1. check /etc/hosts file, this file must contain the machine name, mine hosts file

    jonathan 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

  2. start httpd service

    # service httpd start

  3. check loclahost web page

  4. start tomcat6

    # service tomcat6 start

  5. check localhost:8080 web page

  6. check that tomcat show your project
    if not:

    • check symbolic link and restart tomcat6 service
    • or add manualy with tomcat manager web page
      a) Set project name
      b) Se path to web.xml file
      c) Valid
      d) start your project (from web page)

for fedora 13 and under they are some problem, how fix it:

# chmod -R g+w /var/log/tomcat6 /etc/tomcat6/Catalina  
# chmod -R g+w /usr/share/tomcat6/work/  

check in log files located in /var/log/tomcat6/ if they are anymore "permission denied" message

Solution 4

On my PC I had to open the Tomcat6 entry again after the 7th step mentioned above and then change the default option under Server locations to Use tomcat installation.

Share:
182,161
Sean R
Author by

Sean R

Updated on July 09, 2022

Comments

  • Sean R
    Sean R almost 2 years

    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.

  • hemisphire
    hemisphire over 13 years
    This is what worked for me - I also had to restart Eclipse though.
  • David Okwii
    David Okwii over 11 years
    Thanks man, i had this problem too and your solution just worked instantly!
  • Robert Christian
    Robert Christian about 11 years
    What if you are seeing this problem and not using Eclipse at all?
  • DevYudh
    DevYudh over 10 years
    @rob what u needed is to add external jars to server configuration (apache tomcat) on your IDE.
  • shareef
    shareef over 10 years
    i tried switch location button to \Servers\Tomcat v6.0 it was workspace metadata
  • Drazen Bjelovuk
    Drazen Bjelovuk almost 10 years
    I don't have tomcat6 inside /usr/share/.
  • kiwicomb123
    kiwicomb123 about 7 years
    It did not work for me, my tomcat-juli.jar file is in a different folder though.
  • Be Wake Pandey
    Be Wake Pandey almost 4 years
    I had to change the permission as well. I chowned it to the user.