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

我其实已经想出了这个问题,但是花了我好几天的时间,所以我想我会在这里粘贴我的解决scheme来帮助别人。

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

“在本地启动Tomcat v6.0服务器”遇到了问题。

本地主机上的服务器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. 

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

我在这里find了解决scheme: http : //forums.opensuse.org/applications/391114-tomcat6-eclipse-not-working.html

  1. 在Eclipse中,打开“服务器”选项卡。
  2. 双击“Tomcat6”条目查看configuration。
  3. 然后点击“常规信息”块中的“打开启动configuration”链接。
  4. 在对话框中,select“Classpath”选项卡。
  5. 点击“添加外部jar”button。
  6. select文件“/usr/share/tomcat6/bin/tomcat-juli.jar”
  7. closures对话框。
  8. 从Eclipse启动tomcat 6。

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

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

  1. 安装tomcat

    #yum安装tomcat6 *

  2. 编辑tomcat conf文件

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

就像是:

 <?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项目创build根目录,例如:

    $ mkdir -p〜/ Project / java /

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

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

注意:使用netbeans时,war档案文件是自动创build的

你可以做:

 # ln -s /home/<login>/Project/java/<myProject>/webapps /usr/share/tomcat6/webapps/<myProject> 
  1. 检查/ etc / hosts文件,这个文件必须包含机器名,mine 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启动

  5. 检查localhost:8080网页

  6. 检查一下tomcat是否显示你的项目
    如果不:

    • 检查符号链接并重新启动tomcat6服务
    • 或者用tomcatpipe理器网页添加manualy
      a)设置项目名称
      b)到web.xml文件的Sepath
      c)有效
      d)开始您的项目(从网页)

对于Fedora 13和下他们是一些问题,如何解决它:

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

检查位于/ var / log / tomcat6 /中的日志文件是否有“权限被拒绝”消息

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

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