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

时间:2009-09-08 06:57:20

标签: eclipse tomcat logging noclassdeffounderror

我实际上已经解决了这个问题,但它花了我几天,所以我想我会把我的解决方案粘贴到其他人身上。

我正在使用Fedora 11,在Eclipse中我尝试添加一个Tomcat 6服务器并启动它。我会收到以下错误:

  

'在localhost'启动Tomcat v6.0服务器'遇到了问题。

     

localhost上的服务器Tomcat v6.0服务器无法启动。

然后在我的控制台中我得到了以下内容:

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.

我将在下面的答案中发布解决方案。

5 个答案:

答案 0 :(得分:79)

我在这里找到了解决方案:http://forums.opensuse.org/applications/391114-tomcat6-eclipse-not-working.html

  
      
  1. 在Eclipse中,打开“服务器”选项卡。
  2.   
  3. 双击“Tomcat6”条目以查看配置。
  4.   
  5. 然后单击“常规信息”块中的“打开启动配置”链接。
  6.   
  7. 在对话框中,选择“Classpath”选项卡。
  8.   
  9. 点击“添加外部jar”按钮。
  10.   
  11. 选择文件“/usr/share/tomcat6/bin/tomcat-juli.jar”
  12.   
  13. 关闭对话框。
  14.   
  15. 从Eclipse启动tomcat 6.
  16.   

希望在这里张贴它将有助于一些可怜的人。

答案 1 :(得分:8)

我将“C:\ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ conf”目录的内容复制到Eclipse的“workspace \ Servers \ Tomcat v6.0 Server at localhost-config”目录中。我刷新了Eclipse Project Explorer中的“Servers \ Tomcat v6.0 Server at localhost-config”文件夹,然后一切都很好。

答案 2 :(得分:2)

  1. 安装tomcat

    #yum install tomcat6 *

  2. 编辑tomcat conf文件

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

  3. 类似的东西:

    <?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. 为您的J2EE项目创建根目录,例如:

      $ mkdir -p~ / Project / java /

    2. 做符号链接,/ usr / share / tomcat6 / webapps / to~ / Project / java /

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

    3. 注意:使用netbeans时会自动创建war存档文件

      你可以这样做:

      # ln -s /home/<login>/Project/java/<myProject>/webapps /usr/share/tomcat6/webapps/<myProject>
      
      1. 检查/ etc / hosts文件,此文件必须包含机器名,我的主机文件

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

      2. 启动httpd服务

        #service httpd start

      3. 检查loclahost网页

      4. 启动tomcat6

        #service tomcat6 start

      5. 检查localhost:8080网页

      6. 检查tomcat是否显示您的项目
        如果没有:

        • 检查符号链接并重新启动tomcat6服务
        • 或添加mancat与tomcat manager网页
          a)设置项目名称
          b)到web.xml文件的路径
          c)有效
          d)启动你的项目(来自网页)
      7. 对于fedora 13及其下是一些问题,如何解决它:

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

        签入位于/ var / log / tomcat6 /中的日志文件,如果他们已经“权限被拒绝”消息

答案 3 :(得分:2)

上述解决方案对我没有帮助,我可以通过重新安装Tomcat服务器来解决它,这需要几秒钟。

答案 4 :(得分:1)

在我的电脑上,我必须在上述第7步后再次打开Tomcat6条目,然后将Server locations下的默认选项更改为Use tomcat installation