3
<chain input-channel="afiHeadToHeaderChannel" output-channel="simResMsgOutBoundChannel">
    <transformer ref="afiHeadToHeaderTransform" />
    **<transformer ref="fixedToMapTransform"**  
    <transformer ref="simReqResTransform" />
    <transformer ref="mapToFixedTransform" />
    <transformer ref="headerToAfiHeadTransform" />
</chain>

トランスフォーマー「fixedToMapTransform」を実行後、メッセージでログを取りたい。どうすればこれを解決できますか?

4

2 に答える 2

3

(Garyが指摘したように)Spring Integration-「ネイティブ」な方法はありませんが、独自のロギングアクティベーターを作成できます。

<chain input-channel="afiHeadToHeaderChannel" output-channel="simResMsgOutBoundChannel">
    <transformer ref="afiHeadToHeaderTransform" />
    <transformer ref="fixedToMapTransform"/>
    <service-activator ref="loggingActivator" method="handleMessage" />
    <transformer ref="simReqResTransform" />
    <transformer ref="mapToFixedTransform" />
    <transformer ref="headerToAfiHeadTransform" />
</chain>

<beans:bean id="loggingActivator" class="com.mycompany.LoggingActivator" />

およびアクティベーター コード:

public class LoggingActivator {
  private static final Log LOG = LogFactory.getLog(LoggingActivator.class);

  public Message< ? > handleMessage(final Message< ? > message) {
    LOG.debug(message);
    return message;
  }
}
于 2012-06-08T12:53:45.387 に答える
1

できません; チェーン内のエンドポイントは匿名チャネルに接続されます。最初の出力チャネルが 2 番目の入力チャネルになるように、チェーンを 2 つに分割する必要があります。その後、そのチャネルを盗聴できます。

チェーンは「ブラックボックス」です。

于 2012-06-07T11:24:14.803 に答える