首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SI V2.2升级到V3.0.5后网关接口中断

从SI V2.2升级到V3.0.5后网关接口中断
EN

Stack Overflow用户
提问于 2014-10-23 06:23:36
回答 1查看 72关注 0票数 1

在将SI从v2.2升级到v3.0.5之后,下面的网关出现了错误。V3.x中网关接口的行为是否更改为不接受消息类型??对于为什么会发生这种情况,任何暗示都将不胜感激。

org.springframework.expression.spel.SpelEvaluationException: EL1004E:(pos 8):方法调用:在com.sun.agent上找不到方法sendStat(my.domain.ReplyStatEvent)。$Proxy22类型]

代码语言:javascript
复制
void sendStat(@Payload Message<? extends LiveStatEvent> message);

ReplyStatEvent扩展LiveStatEvent并使用服务激活器定义调用网关,如下所示:

代码语言:javascript
复制
<int:service-activator ref="liveStatsGateway" method="sendStat" />

在将接口更改为以下内容之后,它工作得很好。

代码语言:javascript
复制
void sendStat(@Payload LiveStatEvent message);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-23 07:41:26

即使它以前工作过,也不意味着它的语法是正确的。

如果您的网关的param标记为@Payload,则假定该框架将向该arg注入Message的一个payload,而不是整个Message

我们只是修正了这个模棱两可的地方,然后告诉你用例是不正确的。

因此,如果您只想使用payload,就可以为param指定特定的有效负载类型。这种情况下,@Payload是不必要的。这是必需的,如果您的方法有几个args,而Framewrok无法确定哪个是有效负载。

如果你想和整个Message打交道,那就足够有这样的arg了。

总之,组合@Payload Message<?>是不正确的。因此,您只需要修复那些迁移指南案例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26522338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档