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" />