web-dev-qa-db-ja.com

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

私は実際にこの問題を理解しましたが、数日かかりましたので、他の人を助けるためにここに自分の解決策を貼り付けると思いました。

私は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.

以下の回答にソリューションを掲載します。

40
Sean R

私はここで解決策を見つけました: http://forums.opensuse.org/applications/391114-Tomcat6-Eclipse-not-working.html

  1. Eclipseで、「サーバー」タブを開きます。
  2. 「Tomcat6」エントリをダブルクリックして、構成を確認します。
  3. 次に、「一般情報」ブロックの「起動構成を開く」リンクをクリックします。
  4. ダイアログで、「クラスパス」タブを選択します。
  5. [外部jarの追加]ボタンをクリックします。
  6. ファイル「/usr/share/Tomcat6/bin/Tomcat-juli.jar」を選択します
  7. ダイアログを閉じます。
  8. EclipseからTomcat 6を起動します。

ここに投稿することで、貧しい人々の魂が助けられることを願っています。

79
Sean R

Eclipseの「C:\ Program Files\Apache Software Foundation\Tomcat 6.0\conf」ディレクトリの内容を「localhost-configのworkspace\Servers\Tomcat v6.0 Server」ディレクトリにコピーしました。 Eclipse Project Explorerの「Servers\Tomcat v6.0 Server at localhost-config」フォルダーを更新しましたが、すべて正常でした。

8
Sandor Takats

前述の解決策は役に立たなかったが、数秒かかったTomcatサーバーを再インストールすることで解決できた。

2
user1608396
  1. tomcatをインストールする

    #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プロジェクトのルートディレクトリを作成します。例:

    $ mkdir -p〜/ Project/Java /

  2. 〜/ Project/Java /へのシンボリックリンク/ usr/share/Tomcat6/webapps /を実行します

    #ln -s /home//Project/Java//dist/.war /usr/share/Tomcat6/webapps/.war

注:Netbeansを使用すると、warアーカイブファイルが自動的に作成されます

できること:

# ln -s /home/<login>/Project/Java/<myProject>/webapps /usr/share/Tomcat6/webapps/<myProject>
  1. / etc/hostsファイルを確認します。このファイルにはマシン名、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のWebページを確認してください

  4. tomcat6を起動します

    #サービスTomcat6開始

  5. localhost:8080 Webページを確認してください

  6. tomcatがプロジェクトを表示することを確認してください
    ない場合:

    • シンボリックリンクを確認し、Tomcat6サービスを再起動します
    • または、TomcatマネージャーのWebページで手動で追加します
      a)プロジェクト名の設定
      b)web.xmlファイルへのSeパス
      c)有効
      d)プロジェクトを開始します(Webページから)

fedora 13の場合、それらはいくつかの問題であり、どのように修正しますか:

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

/ var/log/Tomcat6 /にあるログファイルが「permission denied」メッセージであるかどうかを確認します。

2
bioinfornatics

私のPCでは、上記の7番目の手順の後、Tomcat6エントリを再度開き、Server locationsの下のデフォルトオプションをUse Tomcat installationに変更する必要がありました。

1
Naushin Shaikh