2010-07-29 25 views
21

Estoy configurando el servidor Tomcat (5.5) en Eclipse (3.3.2). Una vez que agregue Tomcat y lo inicie, la salida se imprime en la consola de Eclipse. Esta salida está impresa en ROJO, lo que indica su error estándar. Aunque el servidor se inicia sin ningún error, el INFO normal también se marca como error.Tomcat STDOUT como error en Eclipse

Jul 29, 2010 7:06:14 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.5.0_10\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk1.5.0_10\bin\..\jre\bin\client;C:\Program Files\Java\jdk1.5.0_10\bin\..\jre\bin;C:\Program Files\CollabNet Subversion Client;C:\Program Files\Java\jdk1.5.0_10\bin;C:\Program Files\Java\jre1.5.0_07\bin;C:\Program Files\Oracle\Oracle9i\9201\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Sybase125\OCS-12_5\bin;C:\Program Files\Sybase125\OCS-12_5\dll;C:\Program Files\Sybase125\OLEDB;C:\Program Files\Rational\ClearCase\bin;C:\Program Files\Ubsw\Wire\Core;Z:\ZUR_GCOMP_DOC\Project_Trust\datamodel\scripts\GC_trust\Release\1.36\01-DDL;K:\scripts\;C:\Program Files\Ubsw\Wire\Core\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Windows Imaging\;C:\Program Files\MySQL\MySQL Server 5.1\bin;C:\Program Files\apache-maven-2.2.1\bin;C:\Program Files\apache-ant-1.7.0\bin;C:\Viral\Tech\Java\javadb/bin;C:\Program Files\JAD 
Jul 29, 2010 7:06:15 PM org.apache.coyote.http11.Http11BaseProtocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
Jul 29, 2010 7:06:15 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 1187 ms 
Jul 29, 2010 7:06:15 PM org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
Jul 29, 2010 7:06:15 PM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/5.5.30 
Jul 29, 2010 7:06:15 PM org.apache.catalina.core.StandardHost start 
INFO: XML validation disabled 
Jul 29, 2010 7:06:15 PM org.apache.coyote.http11.Http11BaseProtocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
Jul 29, 2010 7:06:15 PM org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
Jul 29, 2010 7:06:15 PM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/110 config=null 
Jul 29, 2010 7:06:15 PM org.apache.catalina.storeconfig.StoreLoader load 
INFO: Find registry server-registry.xml at classpath resource 
Jul 29, 2010 7:06:15 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 922 ms 

¿Alguien me puede decir cómo superar esto y cambiar la salida a NEGRO como STDOUT?

Respuesta

11

Es en rojo porque está escrito en el error estándar (System.err), suponiendo que está utilizando una configuración normal.

Teóricamente, la forma de solucionar esto es ajustar la configuración de registro (que parece estar basada en java.util.logging) para que los mensajes en el nivel INFO y debajo se escriban en la salida estándar. Desafortunadamente, esto es un poco más complicado de lo que podría ser porque la clase ConsoleHandler está codificada de forma rígida para escribir en el error estándar, y si se mezcla entre escritura y error estándar, es muy probable que termine consiguiendo los mensajes de registro escritos fuera de orden. (Eso es malo. Muy confuso.) Puede solucionarlo subponiendo StreamHandler y haciendo muchas modificaciones, por ejemplo, anulando publish para que establezca el flujo de salida si el registro cambia de alto nivel a bajo nivel o viceversa, pero yo realmente dudo que los resultados vayan a ser lo que deseas. También va a ser lento.

Dado que en una implementación de producción de Tomcat no se registra en la consola de todos modos (se registra en los archivos de forma predeterminada) sugiero dejar de preocuparse por esto.

+0

¿Esto lo haría? http://stackoverflow.com/questions/194165/how-do-i-change-java-logging-console-output-from-std-err-to-std-out y ¿quién usaría eso con Tomcat? –

3

Hay una corta respuesta a su pregunta:

clic derecho en la vista de consola> Preferencias ...

y luego ajustar "el color del texto de error estándar" a negro.

Pero, por supuesto, sería mejor si Eclipse supiera que el registro del servidor de Tomcat no se mostrará en rojo.

Parece que no hay mejores respuestas para ahora: http://www.eclipse.org/forums/index.php?t=msg&goto=531848&

El problema se puede reproducir con Tomcat 6 y Tomcat 7 en Eclipse 3.6.2

+0

Creo que esta es la solución más fácil. Desafortunadamente, esto sigue siendo un problema en Eclipse Juno SR2 con Tomcat 7. – johnnieb

+0

Tomcat 8 y eclipse Marte tienen el mismo problema también – Anatoly

1

Lo siguiente me ha funcionado.

En el server.xml de Tomcat, comente

<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/> 

parece que los "rojos se produce" por Tomcat no ser capaz de cargar el lib nativa APR. Omita la carga y no más rojo.

+1

Intenté esto y no funcionó. También configuré la lib nativa de APR para cargarla correctamente y eso tampoco cambió nada. –

+0

@SamHasler Noté que el problema ocurre cada vez que Tomcat emite cualquier tipo de error o advertencia. ¿Ves algo más? – Marc

0

Para mí fue algún otro error. Me ayudó, cuando me aseguré, no hay errores (solo infos) en el registro de inicio. Aparentemente, tomcat cambia a salida de error si encuentra un error.

Cuestiones relacionadas