Jersey ServletContainer在Errors.logErrors中记录错误时挂起

时间:2016-05-28 19:50:36

标签: java rest jersey

当我们重新加载resourceConfig时,我们正面临一个严重的问题,即我们的Jersey容器进入挂起状态。 重新装载球衣容器的代码是 container.reload(ResourceConfig.forApplication(应用程序));

我们无法找到此问题的根本原因,现在阻止了我们的发布。

我们正在使用球衣版本2.13。

我们收到的堆栈跟踪如下

Thread [DefaultMessageListenerContainer-1] (Suspended)  
owns: BufferedOutputStream  (id=3280)   
owns: PrintStream  (id=3281)    
owns: LoggingConfigurationHelper$2  (id=3282)   
owns: OutputStreamWriter  (id=3283) 
owns: ConsoleHandler  (id=3284) 
owns: RestfulConnector  (id=2845)   
FileOutputStream.writeBytes(byte[], int, int, boolean) line: not available [native method]  
FileOutputStream.write(byte[], int, int) line: not available    
BufferedOutputStream.write(byte[], int, int) line: not available    
PrintStream.write(byte[], int, int) line: not available 
LoggingConfigurationHelper$2(PrintStream).write(byte[], int, int) line: not available   
StreamEncoder.writeBytes() line: not available  
StreamEncoder.implFlushBuffer() line: not available 
StreamEncoder.implFlush() line: not available   
StreamEncoder.flush() line: not available   
OutputStreamWriter.flush() line: not available  
ConsoleHandler(StreamHandler).flush() line: not available   
ConsoleHandler.publish(LogRecord) line: not available   
Logger.log(LogRecord) line: not available   
Logger.doLog(LogRecord) line: not available 
Logger.log(Level, String) line: not available   
Logger.warning(String) line: not available  
Errors.logErrors(Collection<ErrorMessage>) line: 191    
Errors.processErrors(boolean) line: 132 
Errors.postProcess(boolean) line: 423   
Errors.process(Callable<T>, boolean) line: 320  
Errors.process(Producer<T>, boolean) line: 297  
Errors.processWithException(Runnable) line: 286 
ApplicationHandler.<init>(Application, Binder, ServiceLocator) line: 320    
ApplicationHandler.<init>(Application, Binder) line: 285    
WebComponent.<init>(WebConfig, ResourceConfig) line: 311    
ServletContainer.reload(ResourceConfig) line: 578

我们也有一个嫌犯。在我们的一个REST资源中,我们返回List。我们在泽西日志中观察到以下警告,在此日志之后容器进入无法使用的状态。

WARNING: The following warnings have been detected: 
WARNING: Return type, java.util.List<SomeObject>, of method, public java.util.List<SomeObject> myResource.get(javax.ws.rs.core.UriInfo,java.lang.String,java.lang.String), is not resolvable to a concrete type.

任何帮助都将是一个很大的帮助! 如果您需要更多信息,请告诉我。 非常感谢。

1 个答案:

答案 0 :(得分:0)

我们可以通过配置日志记录来解决此问题。现在,日志将定向到文件。