2010-07-29 8 views
21

Konfiguruję serwer Tomcat (5.5) w środowisku Eclipse (3.3.2). Po dodaniu Tomcat i uruchomieniu go dane wyjściowe są drukowane w konsoli Eclipse. Dane wyjściowe są drukowane w kolorze CZERWONYM, co wskazuje na błąd standardowy. Chociaż serwer uruchamia się bez żadnego błędu, normalne INFO jest również oznaczane jako błąd.Tomcat STDOUT jako błąd w 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 

Czy ktoś może dać mi znać, jak przezwyciężyć to i zmienić wyjście z powrotem na CZARNY jako STDOUT?

Odpowiedz

11

To na czerwono, ponieważ jest napisany do błędu standardowego (System.err), zakładając, że używasz normalnej konfiguracji.

Teoretycznie sposób naprawy polega na dostosowaniu konfiguracji rejestrowania (która wydaje się być oparta na java.util.logging), aby komunikaty na poziomie INFO i poniżej zostały zapisane zamiast standardowych. Niestety jest to trochę bardziej niepoważne, niż mogłoby się wydawać, ponieważ klasa ConsoleHandler jest zakodowana na sztywno, aby pisać do standardowego błędu, a jeśli mieszasz pisanie ze standardowym wyjściem i standardowym błędem, istnieje duża szansa, że ​​otrzymasz komunikaty rejestrowania zapisane w kolejności. (To jest złe, bardzo mylące.) Można to naprawić, dzieląc podklasy StreamHandler i robiąc wiele błądzących wokół - np. Przesłonić publish, więc ustawia strumień wyjściowy, jeśli rejestrowanie zmienia się z wysokiego poziomu na niski poziom lub odwrotnie - ale ja naprawdę wątpię, że wyniki będą takie, jakich pragniesz. To też będzie wolne.

Ponieważ w przypadku wdrożenia produkcyjnego Tomcat nie logujesz się do konsoli mimo to (domyślnie loguje się do plików), sugeruję przestać się tym martwić.

+0

Czy to zrobić? http://stackoverflow.com/questions/194165/how-do-i-change-java-logging-console-output-from-std-err-to-std-out i kto by to zrobił z Tomcat? –

3

Jest krótka odpowiedź na pytanie:

Prawy clic konsoli Widok> Preferencje ...

a następnie ustawić kolor tekstu "Standard Error" na czarno.

Ale oczywiście byłoby lepiej, gdyby Eclipse wiedział, że log serwera Tomcat nie ma być wyświetlany na czerwono.

Wygląda na to, że nie są lepsze odpowiedzi teraz: http://www.eclipse.org/forums/index.php?t=msg&goto=531848&

Problemem może być powielana z Tomcat 6 i Tomcat 7 w Eclipse 3.6.2

+0

Myślę, że to najprostsze rozwiązanie. Niestety, problem ten nadal występuje w Eclipse Juno SR2 z Tomcat 7. – johnnieb

+0

tomcat 8 i Eclipse Mars mają ten sam problem zbyt – Anatoly

1

Następujące pracował dla mnie.

W server.xml Tomcat, skomentuj

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

wydaje się, że „czerwony jest spowodowane” przez Tomcat nie być w stanie załadować APR natywną lib. Pomiń ładowanie i nie więcej czerwony.

+1

Wypróbowałem to i nie zadziałało. Skonfigurowałem również macierzystą bibliotekę APR, aby ładowała się poprawnie i która niczego nie zmieniła. –

+0

@SamHasler Zauważyłem, że problem występuje, gdy Tomcat emituje jakikolwiek błąd lub ostrzeżenie. Czy widzisz coś jeszcze? – Marc

0

Dla mnie był to inny błąd. Pomagało to, gdy upewniłem się, że nie ma błędów (tylko informacje) w dzienniku początkowym. Najwyraźniej tomcat przełącza się na wyjście błędów, jeśli napotka błąd.

Powiązane problemy