2010-04-16 20 views
7

Estoy usando Eclipse 3.5, con mi tiempo de ejecución Tomcat configurado como Tomcat 6.0.26. Mi Java VM es JDK 1.6.17 (Mac OS X).ClassCircularityError al ejecutar Tomcat 6 desde Eclipse

Cuando trato de ejecutar una aplicación web desde una perspectiva Eclipse Java EE Sigo viendo este error en la consola:

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 

java/util/registro/LogRecord implementa Serializable, por lo que no estoy seguro de dónde podría haber entrado la referencia circular.

¿Alguien ha visto esto antes y sabe cómo solucionarlo?

+0

Este AdSafe? http://www.adsafe.org/ – trashgod

+0

Este podría ser el error oficial: http://jira.qos.ch/browse/LOGBACK-740 El creador de Logback parece pensar que es un problema de Tomcat. –

Respuesta

3

no estoy seguro de por qué esto resuelve el problema, pero el ajuste del nivel predeterminado a INFO hizo esto desaparezca para mí

.level = INFO

+1

Esto se debe a que el error de circularidad se produce cuando el cargador de clases Webapp carga las clases de registrador. Al hacerlo, muestra un mensaje de depuración en el registro. Para esto, tendrá que cargar las clases de registrador. Haciendo eso ... ves a dónde va esto. Establecer el nivel de registro en INFO suprime la entrada del registro de depuración -> loop evitado. – user2543253

2

En tenía el mismo error al utilizar Logback.

En mi caso, el problema fue que utilicé JUL LevelChangePropagator en mi archivo de configuración de Logback.

Así que sólo tuvo que quitar el siguiente oyente

<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> 
    <resetJUL>true</resetJUL> 
</contextListener> 
+2

eliminar 'LevelChangePropagator' puede causar un problema de rendimiento: http://www.slf4j.org/legacy.html#jul-to-slf4j –

+1

@BradCupit También tuve este error (y no quería dejar de usar el LevelChangePropagator para razones de rendimiento). Aunque me costaba creerlo, la solución de Meriton (abajo) funcionó para mí y me permitió conservarla. – Eyal

+0

@Eyal ¡También utilicé la solución de meriton y funcionó también! –

6

pude eludir este problema moviendo el <contextListener ...> hasta el final del archivo de configuración (con anterioridad, lo tenía al comienzo de la archivo). El error sigue siendo realmente extraño, sin embargo.

+0

¡Gracias !. Funcionó para mí – szarza

2

El problema se resuelve si se inserta este fragmento en su configuración logback:

<!-- LEVEL CAN NOT BE DEBUG --> 
<logger name="org.apache" level="INFO"></logger> 
Cuestiones relacionadas