我尝试使用多个jpa:入站通道适配器。但是我有一个问题。当我添加两个入站通道适配器时,只有最后一个工作。例如,现在有两个入站通道,我们称它们为x和y。如果我先写x然后写y到application.xml文件,那么只有y有效。如果先写y,那么x只有x有效。这里是xml配置,Spring jpa:入站通道适配器配置
<int:channel id="emailChannel" />
<int-jpa:inbound-channel-adapter
channel="emailChannel" entity-manager-factory="entityManagerFactory"
auto-startup="true"
jpa-query="select slt from Email slt where slt.mailStatus = 'NEW'"
expect-single-result="false" delete-after-poll="false">
<int:poller fixed-rate="10000" >
<int:transactional propagation="REQUIRED"
transaction-manager="transactionManager" />
</int:poller>
</int-jpa:inbound-channel-adapter>
<int:service-activator input-channel="emailChannel" ref="EmailSenderEndPoint" method="sendEmail" />
<int:channel id="msgChannel" />
<int-jpa:inbound-channel-adapter
channel="msgChannel" entity-manager-factory="entityManagerFactory"
auto-startup="true"
jpa-query="select rm from Msg rm where rm.isApproved= '1' "
expect-single-result="false" delete-after-poll="false">
<int:poller fixed-rate="30000">
<int:transactional propagation="REQUIRED"
transaction-manager="transactionManager" />
</int:poller>
</int-jpa:inbound-channel-adapter>
<int:service-activator input-channel="msgChannel" ref="MsgSenderEndPoint" method="sendMsg" />
在上例中,只有msgChannel工作。但是,如果我改变如下,只有emailChannel的作品。
<int:channel id="msgChannel" />
<int-jpa:inbound-channel-adapter
channel="msgChannel" entity-manager-factory="entityManagerFactory"
auto-startup="true"
jpa-query="select rm from Msg rm where rm.isApproved= '1' "
expect-single-result="false" delete-after-poll="false">
<int:poller fixed-rate="30000">
<int:transactional propagation="REQUIRED"
transaction-manager="transactionManager" />
</int:poller>
</int-jpa:inbound-channel-adapter>
<int:service-activator input-channel="msgChannel" ref="MsgSenderEndPoint" method="sendMsg" />
<int:channel id="emailChannel" />
<int-jpa:inbound-channel-adapter
channel="emailChannel" entity-manager-factory="entityManagerFactory"
auto-startup="true"
jpa-query="select slt from Email slt where slt.mailStatus = 'NEW'"
expect-single-result="false" delete-after-poll="false">
<int:poller fixed-rate="10000" >
<int:transactional propagation="REQUIRED"
transaction-manager="transactionManager" />
</int:poller>
</int-jpa:inbound-channel-adapter>
<int:service-activator input-channel="emailChannel" ref="EmailSenderEndPoint" method="sendEmail" />
我不明白问题是什么。你可以帮帮我吗?
编辑:我解决了这个问题。我将接口添加到服务激活器类,然后解决问题。
什么是Spring集成版本? –