web-dev-qa-db-ja.com

Eclipseのエラー-Tomcatセットアップ-ClassNotFoundException "1catalina.org.Apache.juli.FileHandler"

セットアップ: Eclipse Juno R、Tomcat 7.0.8、TomcatはEclipseプラグインを介して実行されます。EclipseからのTomcat起動構成にはVM引数があります-Djava.util.logging.config.file = "C:\ WS\Serverlogs\Tomcat7\conf\logging.properties"(参照: EclipseのTomcatログファイルはどこで表示できますか? )次のエラーが発生します。

Can't load log handler "1catalina.org.Apache.juli.FileHandler"
Java.lang.ClassNotFoundException: 1catalina.org.Apache.juli.FileHandler
Java.lang.ClassNotFoundException: 1catalina.org.Apache.juli.FileHandler
    at Java.net.URLClassLoader$1.run(Unknown Source)
    at Java.net.URLClassLoader$1.run(Unknown Source)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(Unknown Source)
    at Java.lang.ClassLoader.loadClass(Unknown Source)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at Java.lang.ClassLoader.loadClass(Unknown Source)
    at Java.util.logging.LogManager$3.run(Unknown Source)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.util.logging.LogManager.loadLoggerHandlers(Unknown Source)
    at Java.util.logging.LogManager.addLogger(Unknown Source)
    at Java.util.logging.LogManager$1.run(Unknown Source)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.util.logging.LogManager.<clinit>(Unknown Source)
    at Java.util.logging.Logger.getLogger(Unknown Source)
    at org.Apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.Java:71)
    at org.Apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.Java:196)
    at org.Apache.juli.logging.LogFactory.getInstance(LogFactory.Java:170)
    at org.Apache.juli.logging.LogFactory.getInstance(LogFactory.Java:242)
    at org.Apache.juli.logging.LogFactory.getLog(LogFactory.Java:293)
    at org.Apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.Java:57)
Can't load log handler "1catalina.org.Apache.juli.FileHandler"

「1catalina.org.Apache.juli.FileHandler」、「2localhost.org.Apache.juli.FileHandler」などにも同様のエラーがあります。これらのクラスは/ binのTomcat-juli.jarからのものであることを理解しています。このjarをサーバーのクラスパスに追加しました(Eclipse->サーバー->開く-> Lauch構成を開く->クラスパス->ユーザーエントリ)が、同じエラーが発生しました。 logging.propertiesの内容は次のとおりです。

handlers = 1catalina.org.Apache.juli.FileHandler, 2localhost.org.Apache.juli.FileHandler, 3manager.org.Apache.juli.FileHandler, 4Host-manager.org.Apache.juli.FileHandler, Java.util.logging.ConsoleHandler

.handlers = 1catalina.org.Apache.juli.FileHandler, Java.util.logging.ConsoleHandler

1catalina.org.Apache.juli.FileHandler.level = FINE
1catalina.org.Apache.juli.FileHandler.directory = C:\WS\Serverlogs\Tomcat7/logs
1catalina.org.Apache.juli.FileHandler.prefix = catalina.

2localhost.org.Apache.juli.FileHandler.level = FINE
2localhost.org.Apache.juli.FileHandler.directory = C:\WS\Serverlogs\Tomcat7/logs
2localhost.org.Apache.juli.FileHandler.prefix = localhost.

3manager.org.Apache.juli.FileHandler.level = FINE
3manager.org.Apache.juli.FileHandler.directory = C:\WS\Serverlogs\Tomcat7/logs
3manager.org.Apache.juli.FileHandler.prefix = manager.

4Host-manager.org.Apache.juli.FileHandler.level = FINE
4Host-manager.org.Apache.juli.FileHandler.directory = C:\WS\Serverlogs\Tomcat7/logs
4Host-manager.org.Apache.juli.FileHandler.prefix = Host-manager.

Java.util.logging.ConsoleHandler.level = FINE
Java.util.logging.ConsoleHandler.formatter = Java.util.logging.SimpleFormatter

org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.Apache.juli.FileHandler

org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.Apache.juli.FileHandler

org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Host-manager].level = INFO
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Host-manager].handlers = 4Host-manager.org.Apache.juli.FileHandler

任意の入力/ガイダンスは大歓迎です。これらが見つかりました ログファイルをロールするようにTomcat JULIログを構成する方法ローカルTomcat環境が起動していません 、しかし私の問題は異なっているようです。

Edit1サーバーのVM引数に「-Djava.util.logging.manager = org.Apache.juli.ClassLoaderLogManager」を追加し、ログで「\」を「/」に変更します。プロパティがトリックを行いました。 TomcatロギングFAQへのポインタを提供してくれたRobinに感謝します

ありがとう、VJ

14
vjkumar

次のシステムプロパティが設定されていることを確認します。

-Djava.util.logging.manager=org.Apache.juli.ClassLoaderLogManager

見られるように ここ Tomcatユーザーのメーリングリスト。

Tomcat起動スクリプトを使用する代わりに [〜#〜] yajsw [〜#〜] を使用してTomcatを起動するときに同じ問題が発生しました。

18
John McCarthy

この特定の質問についてはFAQ)を確認できます: http://wiki.Apache.org/Tomcat/FAQ/Logging

または、次のような別のlogging.propertiesを使用することもできます。

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.Apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.Apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN
0
Robin