Spring integration spring集成服务激活器错误
我尝试在文件入站通道适配器和文件剥离器之间预处理文件。为此,我编写了一个类来执行此任务:\Spring integration spring集成服务激活器错误,spring-integration,Spring Integration,我尝试在文件入站通道适配器和文件剥离器之间预处理文件。为此,我编写了一个类来执行此任务:\ @MessageEndpoint public class ReleaseManagerForFlatFile { @ServiceActivator public Message<?> processFileCounter(Message<?> message) { Get the job Done ! return messag
@MessageEndpoint
public class ReleaseManagerForFlatFile {
@ServiceActivator
public Message<?> processFileCounter(Message<?> message) {
Get the job Done !
return message;
}
}
<int-file:inbound-channel-adapter
directory="D:\Donnees\Dev\workspace-luna\FileAggreg\In" id="fileIn"
auto-startup="true" channel="channelFile" prevent-duplicates="true">
<int:poller fixed-rate="60000" />
</int-file:inbound-channel-adapter>
<int:channel id="channelFile" />
<int:service-activator id="releaseManager" input-channel="channelFile" output-channel="channelFileIn"
ref="releaseManagerForFlatFile" />
<int:channel id="channelFileIn" />
<int-file:splitter id="splitter" input-channel="channelFileIn" output-channel="channelSplitter" />
我以前写过很多service activator,但我从未遇到过这个问题。。。
背景:SpringIntegration4.2我刚刚用您的精确代码进行了测试,没有任何问题
<int-file:inbound-channel-adapter
directory="D:\Donnees\Dev\workspace-luna\FileAggreg\In" id="fileIn"
auto-startup="true" channel="channelFile" prevent-duplicates="true">
<int:poller fixed-rate="60000" />
</int-file:inbound-channel-adapter>
<int:channel id="channelFile" />
<int:service-activator id="releaseManager" input-channel="channelFile" output-channel="channelFileIn"
ref="releaseManagerForFlatFile" />
<int:channel id="channelFileIn" />
<int-file:splitter id="splitter" input-channel="channelFileIn" output-channel="channelSplitter" />
类型为[class org.springframework.integration.endpoint.EventDrivenConsumer]的目标对象没有处理消息的合格方法
<int-file:inbound-channel-adapter
directory="D:\Donnees\Dev\workspace-luna\FileAggreg\In" id="fileIn"
auto-startup="true" channel="channelFile" prevent-duplicates="true">
<int:poller fixed-rate="60000" />
</int-file:inbound-channel-adapter>
<int:channel id="channelFile" />
<int:service-activator id="releaseManager" input-channel="channelFile" output-channel="channelFileIn"
ref="releaseManagerForFlatFile" />
<int:channel id="channelFileIn" />
<int-file:splitter id="splitter" input-channel="channelFileIn" output-channel="channelSplitter" />
这意味着您的releaseManagerForFlatFile
bean不是releaseManagerForFlatFile
实例,而是上下文中的某个其他使用者端点
<int-file:inbound-channel-adapter
directory="D:\Donnees\Dev\workspace-luna\FileAggreg\In" id="fileIn"
auto-startup="true" channel="channelFile" prevent-duplicates="true">
<int:poller fixed-rate="60000" />
</int-file:inbound-channel-adapter>
<int:channel id="channelFile" />
<int:service-activator id="releaseManager" input-channel="channelFile" output-channel="channelFileIn"
ref="releaseManagerForFlatFile" />
<int:channel id="channelFileIn" />
<int-file:splitter id="splitter" input-channel="channelFileIn" output-channel="channelSplitter" />
也许您有一个重复的bean名称
<int-file:inbound-channel-adapter
directory="D:\Donnees\Dev\workspace-luna\FileAggreg\In" id="fileIn"
auto-startup="true" channel="channelFile" prevent-duplicates="true">
<int:poller fixed-rate="60000" />
</int-file:inbound-channel-adapter>
<int:channel id="channelFile" />
<int:service-activator id="releaseManager" input-channel="channelFile" output-channel="channelFileIn"
ref="releaseManagerForFlatFile" />
<int:channel id="channelFileIn" />
<int-file:splitter id="splitter" input-channel="channelFileIn" output-channel="channelSplitter" />
为
org.springframework
启用调试日志将有所帮助-您可以查看正在处理的bean定义并将它们连接在一起。我想您需要像下面这样声明新的bean
<int-file:inbound-channel-adapter
directory="D:\Donnees\Dev\workspace-luna\FileAggreg\In" id="fileIn"
auto-startup="true" channel="channelFile" prevent-duplicates="true">
<int:poller fixed-rate="60000" />
</int-file:inbound-channel-adapter>
<int:channel id="channelFile" />
<int:service-activator id="releaseManager" input-channel="channelFile" output-channel="channelFileIn"
ref="releaseManagerForFlatFile" />
<int:channel id="channelFileIn" />
<int-file:splitter id="splitter" input-channel="channelFileIn" output-channel="channelSplitter" />
<bean id="releaseManagerForFlatFile" class="package.name.ReleaseManagerForFlatFile"></bean>
我也面临同样的问题,但这对我来说很有效。希望这有帮助
<int-file:inbound-channel-adapter
directory="D:\Donnees\Dev\workspace-luna\FileAggreg\In" id="fileIn"
auto-startup="true" channel="channelFile" prevent-duplicates="true">
<int:poller fixed-rate="60000" />
</int-file:inbound-channel-adapter>
<int:channel id="channelFile" />
<int:service-activator id="releaseManager" input-channel="channelFile" output-channel="channelFileIn"
ref="releaseManagerForFlatFile" />
<int:channel id="channelFileIn" />
<int-file:splitter id="splitter" input-channel="channelFileIn" output-channel="channelSplitter" />