Spring integration 从SI v 2.2升级到v 3.0.5后网关接口中断
在将SI从v2.2升级到v3.0.5之后,我得到了以下网关的一个错误。V3.x中网关接口的行为是否已更改为不接受消息类型??如果您能提供任何有关为什么会发生这种情况的提示,我们将不胜感激 org.springframework.expression.spel.SpelEvaluationException:EL1004E:(位置8):方法调用:在com.sun.proxy上找不到方法sendStat(my.domain.ReplyStatEvent)。$Proxy22 type]Spring integration 从SI v 2.2升级到v 3.0.5后网关接口中断,spring-integration,spelevaluationexception,Spring Integration,Spelevaluationexception,在将SI从v2.2升级到v3.0.5之后,我得到了以下网关的一个错误。V3.x中网关接口的行为是否已更改为不接受消息类型??如果您能提供任何有关为什么会发生这种情况的提示,我们将不胜感激 org.springframework.expression.spel.SpelEvaluationException:EL1004E:(位置8):方法调用:在com.sun.proxy上找不到方法sendStat(my.domain.ReplyStatEvent)。$Proxy22 type] void se
void sendStat(@Payload Message<? extends LiveStatEvent> message);
即使它以前工作过,也不意味着它的语法是正确的 如果网关的参数标记为
@Payload
,则假定框架将向该arg注入消息
的有效载荷
,而不是整个消息
我们刚刚修复了这种模糊性,现在向您展示了您的用例是不正确的
因此,如果您想使用just有效载荷
,就可以为param指定just有效载荷类型。
在这种情况下,@Payload
不是必需的。如果您的方法有多个参数,而Framewrok无法确定有效负载的参数,则必须使用该参数
如果您想处理整个消息
,那么只需要一个该类型的arg即可
无论如何,组合
@Payload Message
不正确。因此,您只需修复这些情况。谢谢Artem。你这么说似乎有点明显。我不知道为什么它被标注为@Payload。
<int:service-activator ref="liveStatsGateway" method="sendStat" />
void sendStat(@Payload LiveStatEvent message);