私はあなたがこのコードの平和を意味推測:
catch (Exception e) { //run again after a delay
logger.warn("Failed to execute IDLE task. Will attempt to resubmit in " + ImapIdleChannelAdapter.this.reconnectDelay + " milliseconds.", e);
ImapIdleChannelAdapter.this.receivingTaskTrigger.delayNextExecution();
ImapIdleChannelAdapter.this.publishException(e);
}
そして、あなたはあなたのログにそのWARN
を参照してください。
publishException()
については、最新のラインにご注目ください。それは、このコードです:
private void publishException(Exception e) {
if (this.applicationEventPublisher != null) {
this.applicationEventPublisher.publishEvent(new ImapIdleExceptionEvent(e));
}
だから、あなたが必要なものをそのImapIdleExceptionEvent
ためEventListener
を追加することです。たとえば、ApplicationEventListeningMessageProducerを使用できます。
ありがとう、私はそれを試してみましょう。どのように私は 'adapter.id'のようなカスタムヘッダーを追加することができます私は、システムが複数のimapを持つことができるように、どのアダプターが問題を抱えていたかを知るためにエラーチャンネルのヘッダーエンリッチャーを通してアダプターIDを渡しているimap& /またはポップアップを使用して、親/子コンテキストを使用して制御しています。 – sonu131
イベントはこの 'super(ImapIdleChannelAdapter.this、e);'を行います。したがって、リスナー側では、論理を区別するために 'getComponentName()'を追跡できます。 –
On(NamedCompnent)event.getSource() –