Java 不带输出通道的Spring集成服务激活器

Java 不带输出通道的Spring集成服务激活器,java,spring,Java,Spring,在我的代码中,我有一个入站适配器通道和一个service activator,我不想将service activator与出站通道连接 我正在使用的代码 <file:inbound-channel-adapter id="filesIn" directory="E:/usmandata/logs/input" filter="onlyLogFiles" auto-startup="true"> <int:poller id="po

在我的代码中,我有一个入站适配器通道和一个service activator,我不想将service activator与出站通道连接

我正在使用的代码

<file:inbound-channel-adapter id="filesIn"
        directory="E:/usmandata/logs/input" filter="onlyLogFiles"
        auto-startup="true">
        <int:poller id="poller" fixed-delay="5000" />
    </file:inbound-channel-adapter>

    <int:service-activator input-channel="filesIn"  ref="handler" />

如文档中所述,只需将其设置为void return type或设置为nullChannel

如果该方法返回一个结果,并且没有定义“输出通道”,那么框架将检查请求消息的replyChannel头值。如果该值可用,它将检查其类型。如果是MessageChannel,则回复消息将发送到该频道。如果是字符串,则端点将尝试将通道名称解析为通道实例。如果无法解析通道,则将抛出DestinationResolutionException。如果可以解决,消息将发送到那里。如果请求消息没有replyChannel标头,并且reply对象是一条消息,则会为目标目标查询其replyChannel标头。这是Spring集成中用于请求-应答消息传递的技术,也是返回地址模式的一个示例

如果您的方法返回一个结果,并且您希望放弃该结果并结束流,则应将输出通道配置为发送到空通道。为了方便起见,框架注册了一个名为nullChannel的。详见第4.1.6节“特殊频道”

Service Activator是生成回复消息不需要的组件之一。如果方法返回null或具有void返回类型,则服务激活器将在方法调用后退出,而不发出任何信号。此行为可以由AbstractReplyProducingMessageHandler.requiresReply选项控制,该选项在配置XML命名空间时也作为requiresReply公开。如果该标志设置为true,并且该方法返回null,则会引发ReplyRequiredException


如文档中所述,只需将其设置为void return type或设置为nullChannel

如果该方法返回一个结果,并且没有定义“输出通道”,那么框架将检查请求消息的replyChannel头值。如果该值可用,它将检查其类型。如果是MessageChannel,则回复消息将发送到该频道。如果是字符串,则端点将尝试将通道名称解析为通道实例。如果无法解析通道,则将抛出DestinationResolutionException。如果可以解决,消息将发送到那里。如果请求消息没有replyChannel标头,并且reply对象是一条消息,则会为目标目标查询其replyChannel标头。这是Spring集成中用于请求-应答消息传递的技术,也是返回地址模式的一个示例

如果您的方法返回一个结果,并且您希望放弃该结果并结束流,则应将输出通道配置为发送到空通道。为了方便起见,框架注册了一个名为nullChannel的。详见第4.1.6节“特殊频道”

Service Activator是生成回复消息不需要的组件之一。如果方法返回null或具有void返回类型,则服务激活器将在方法调用后退出,而不发出任何信号。此行为可以由AbstractReplyProducingMessageHandler.requiresReply选项控制,该选项在配置XML命名空间时也作为requiresReply公开。如果该标志设置为true,并且该方法返回null,则会引发ReplyRequiredException