2017-07-26 41 views
0

我正面临一些不可思议的NPE,没有任何细节抛出org.springframework.integration.handler.LoggingHandler。之前的日志条目是2分钟之前,这也很奇怪。NPE在Spring集成日志处理程序

有没有人有任何想法背后的原因是什么?

2017-07-25 18:33:38.561 DEBUG o.s.b.f.s.DefaultListableBeanFactory  : Returning cached instance of singleton bean 'markEodPositionsAsProcessedChannel' 
2017-07-25 18:35:36.985 ERROR o.s.integration.handler.LoggingHandler : org.springframework.messaging.MessageHandlingException: nested exception is java.lang.NullPointerException 
      at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:96) 
      at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:89) 
      at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109) 
      at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127) 
      at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116) 
      at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:148) 
      at org.springframework.integration.dispatcher.UnicastingDispatcher.access$000(UnicastingDispatcher.java:53) 
      at org.springframework.integration.dispatcher.UnicastingDispatcher$3.run(UnicastingDispatcher.java:129) 
      at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:55) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
      at java.lang.Thread.run(Unknown Source) 
    Caused by: java.lang.NullPointerException 

回答

0

你谈论看起来像代码:

public T processMessage(Message<?> message) { 
    try { 
     return this.delegate.process(message); 
    } 
    catch (Exception e) { 
     throw new MessageHandlingException(message, e); 
    } 
} 

的明确意味着delegate.process()抛出NPE莫名其妙。

根据StackTrace,你有一些Service Activator来调用你的POJO服务方法。这看起来像你的方法已经抛出了NPE

我也相信Caused by: java.lang.NullPointerException之后StackTrace中还有别的东西。

您可以在日志中看到ERROR,因为您有一些从某些源开始的轮询流 - 入站通道适配器。并且抛出的任何异常都会被Poller Ednpoint中的错误处理程序捕获并发送到errorChannelLoggingHandler作为默认订户。

有关更多信息,请参阅Reference Manual