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

没有 Spring Integration-“本机”方式来做到这一点(正如 Gary 指出的那样),但您可以编写自己的日志记录激活器。

<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

你不能;链中的端点与匿名通道相连。您必须将链分成两部分,第一个的输出通道是第二个的输入通道;然后,您可以窃听该通道。

链条是一个“黑匣子”。

于 2012-06-07T11:24:14.803 回答