2013-08-05 5 views
0

эта проблема заставляет меня сходить с ума.Рекурсивный вызов в SystemOutandErrhandler

Я использую стекловолокно V2.1 и JDK 1.6.0_27 на Kubuntu 12.04. Если я запустил сервер, я получил это исключение

Starting Domain domain1, please wait. 
Default Log location is /usr/share/glassfish-v2.1-b60e/domains/domain1/logs/server.log. 
Redirecting output to /usr/share/glassfish-v2.1-b60e/domains/domain1/logs/server.log 
recursive call into SystemOutandErrhandler 
java.lang.RuntimeException: recursivecall 
     at com.sun.enterprise.server.logging.SystemOutandErrHandler$LoggingByteArrayOutputStream.flush(SystemOutandErrHandler.java:359) 
     at java.io.PrintStream.write(PrintStream.java:449) 
     at com.sun.enterprise.server.logging.SystemOutandErrHandler$LoggingPrintStream.write(SystemOutandErrHandler.java:293) 
     at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:220) 
     at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:281) 
     at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:124) 
     at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:134) 
     at java.io.OutputStreamWriter.write(OutputStreamWriter.java:220) 
     at java.io.Writer.write(Writer.java:157) 
     at java.util.logging.StreamHandler.publish(StreamHandler.java:209) 
     at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:105) 
     at java.util.logging.Logger.log(Logger.java:530) 
     at java.util.logging.Logger.doLog(Logger.java:552) 
     at java.util.logging.Logger.log(Logger.java:575) 
     at com.sun.enterprise.server.logging.SystemOutandErrHandler$LoggingByteArrayOutputStream.flush(SystemOutandErrHandler.java:368) 
     at java.io.PrintStream.write(PrintStream.java:449) 
     at com.sun.enterprise.server.logging.SystemOutandErrHandler$LoggingPrintStream.write(SystemOutandErrHandler.java:293) 
     at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:220) 
     at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:290) 
     at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:294) 
     at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:140) 
     at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) 
     at java.util.logging.StreamHandler.flush(StreamHandler.java:242) 
     at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:106) 
     at java.util.logging.Logger.log(Logger.java:530) 
     at java.util.logging.Logger.doLog(Logger.java:552) 
     at java.util.logging.Logger.log(Logger.java:616) 
     at com.sun.enterprise.server.ApplicationServer.printStartupInfo(ApplicationServer.java:618) 
     at com.sun.enterprise.server.ApplicationServer.onInitialization(ApplicationServer.java:170) 
     at com.sun.enterprise.server.ondemand.OnDemandServer.onInitialization(OnDemandServer.java:103) 
     at com.sun.enterprise.server.PEMain.run(PEMain.java:399) 
     at com.sun.enterprise.server.PEMain.main(PEMain.java:336) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at com.sun.enterprise.server.PELaunch.main(PELaunch.java:415) 
Domain domain1 is ready to receive client requests. Additional services are being started in background. 
Domain [domain1] is running [Sun GlassFish Enterprise Server v2.1 (9.1.1) (build b60e-fcs)] with its configuration and logs at: [/usr/share/glassfish-v2.1-b60e/domains]. 
Admin Console is available at [http://localhost:4848]. 
Use the same port [4848] for "asadmin" commands. 
User web applications are available at these URLs: 
[http://localhost:8080 https://localhost:8181 ]. 
Following web-contexts are available: 
[/web1 /__wstx-services /jamon ]. 
Standard JMX Clients (like JConsole) can connect to JMXServiceURL: 
[service:jmx:rmi:///jndi/rmi://calvi:8686/jmxrmi] for domain management purposes. 
Domain listens on at least following ports for connections: 
[8080 8181 4848 3700 3820 3920 8686 ]. 
Domain does not support application server clusters and other standalone instances. 

Сервер работает без проблем, но журнал не работает. Я переустановил старую рыбку и java тоже. Но это не помогает. Если я прокомментирую строку обработчиков в файле /etc/java-6-openjdk/logging.properties, сервер запускается без исключений, но журнал не работает.

handlers= java.util.logging.ConsoleHandler 

Я не знаю, произошло ли это в классе ConsoleHandler.

Заранее за вашу помощь.

+1

звучит как ошибка. Похоже, что при попытке зарегистрировать некоторый текст есть триггеры и ошибка, которая пытается записать больше текста. –

ответ

0

Похоже, вам нужно перейти на GlassFish V3. См: GLASSFISH-8822 и GlassFish 3 means no GlassFish 2.1.2

С GLASSFISH-6164 обходной путь указан как:

Если сбросить System.out и System.err, чтобы указать на временный файл перед вызовом readConfiguration и не сбрасывать их указывают на регистратор, тогда все отлично работает.

Возможно, вы создали пользовательский LogManager, который выполняет это обходное решение при вызове функции readConfiguration. Затем установите пользовательский LogManager с помощью свойства системы java.util.logging.manager при запуске.

+0

Можете ли вы сказать, где я могу скачать v2.1.2? Я не могу найти его. Это официальный релиз из морской рыбы? – sylo

+0

Отредактировано и добавлена ​​ссылка. – jmehrens

 Смежные вопросы

  • Нет связанных вопросов^_^