从Eclipse运行Tomcat 6时的ClassCircularityError

7 java tomcat

我正在使用Eclipse 3.5,我的Tomcat运行时设置为Tomcat 6.0.26.我的Java VM是JDK 1.6.17(Mac OS X).

当我尝试从Eclipse Java EE透视图运行Web应用程序时,我在控制台中看到这个错误:

Caused by: java.lang.ClassCircularityError: java/util/logging/LogRecord
 at com.adsafe.util.SimpleFormatter.format(SimpleFormatter.java:11)
 at java.util.logging.StreamHandler.publish(StreamHandler.java:179)
 at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:88)
 at java.util.logging.Logger.log(Logger.java:458)
 at java.util.logging.Logger.doLog(Logger.java:480)
 at java.util.logging.Logger.logp(Logger.java:596)
 at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:165)
 at org.apache.juli.logging.DirectJDKLog.info(DirectJDKLog.java:115)
 at org.apache.catalina.core.ApplicationContext.log(ApplicationContext.java:644)
 at org.apache.catalina.core.ApplicationContextFacade.log(ApplicationContextFacade.java:251)
 at org.apache.catalina.core.StandardWrapper.unavailable(StandardWrapper.java:1327)
 at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1130)
 at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
 at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4187)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4496)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
 at org.apache.catalina.core.StandardService.start(StandardService.java:519)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
 ... 6 more
Run Code Online (Sandbox Code Playgroud)

java/util/logging/LogRecord实现了Serializable,所以我不确定循环引用可能在哪里.

有没有人见过这个,知道如何解决这个问题?

mer*_*ike 7

我能够通过移动<contextListener ...>到配置文件的最后来解决这个问题(之前,我在文件的开头有它).但错误仍然非常奇怪.


小智 3

我不确定为什么这解决了问题,但将默认级别设置为 INFO 使这个问题对我来说消失了

.level = 信息

  • 这是因为当 Web 应用程序类加载器加载记录器类时会发生循环错误。这样做时,它会向日志输出一条调试消息。为此,需要加载记录器类。这样做......你就会看到事情的进展。将日志级别设置为 INFO 可抑制调试日志条目 -&gt; 避免循环。 (4认同)