2017-06-08 6 views
1

ポーラーでerror-channelを使用して、imapおよびpopアダプターの接続/認証に関連するエラーを処理して報告できます。imap-idle-channel-adapterを使用しているときに接続/認証エラーを処理する方法

私はimap-idleも1つ持っていますが、そのチャネルでこれらのエラーは発生しませんが、ログのみの警告です。

電子メールアイドルアダプターの同様のエラーを処理して報告する方法は何ですか?

答えて

0

私はあなたがこのコードの平和を意味推測:

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を使用できます。

+0

ありがとう、私はそれを試してみましょう。どのように私は 'adapter.id'のようなカスタムヘッダーを追加することができます私は、システムが複数のimapを持つことができるように、どのアダプターが問題を抱えていたかを知るためにエラーチャンネルのヘッ​​ダーエンリッチャーを通してアダプターIDを渡しているimap& /またはポップアップを使用して、親/子コンテキストを使用して制御しています。 – sonu131

+0

イベントはこの 'super(ImapIdleChannelAdapter.this、e);'を行います。したがって、リスナー側では、論理を区別するために 'getComponentName()'を追跡できます。 –

+0

On(NamedCompnent)event.getSource() –

関連する問題