2

私はTomcatを使い始めたばかりで、うまく機能していましたが、昨日から起動に問題がありました.Tomcatも再インストールしました.ログファイルに記録されたエラーレポートは以下に掲載されています.....

引用符

   2013-01-01 19:10:21 Commons Daemon procrun stderr initialized
   java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:60)
   Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
     at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
   ... 1 more

スレッド「メイン」での例外

4

1 に答える 1

4

実際、私はライブラリをtomcatからjdkのextフォルダにコピーしました。

あなたはそれをするべきではありません。それはクラスローディング災害を引き起こします。servletcontainer自身のライブラリを移動/コピー/変更しないでください。それらのタッチを解除し、JavaSEにまったく関係のない任意のJARをJRE/JDK/libまたは/lib/extフォルダーにドロップしないでください。それらのフォルダをクリーンアップします。

関連する注意点として、これを行っていないように見えても、servletcontainer固有のJARファイルをwebappの/WEB-INF/libフォルダーに配置しないでください。

%CLASSPATH%これは、JSP /サーブレットAPIでのコンパイルエラーを回避したり、または-cp/をいじらずにコンパイルを「単純化」したりするための一般的なスターターの間違い-classpathです。Eclipse / NetbeansなどのIDEを使用している場合は、実際にサーバーランタイムをIDEに登録し、それを「ターゲットランタイム」としてWebプロジェクトに関連付ける必要があります。プレーンを使用している場合javacは、実際には-cp/-classpath引数を使用して、コンパイルするservletcontainer固有のJARファイルを指定する必要があります。クラスパス値全体の再入力を回避するためにそれをさらに抽象化するには、コマンドを再利用可能なファイル.batまたは.cmdファイルに配置するか、Maven、Gradleなどの適切なビルドツール、またはEclipse/NetbeansなどのIDEを使用する必要があります。

参照:

于 2013-01-02T16:10:25.437 に答える