首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何传递参数@Payload

如何传递参数@Payload
EN

Stack Overflow用户
提问于 2016-10-04 10:47:45
回答 2查看 2.7K关注 0票数 0

我有密码

代码语言:javascript
复制
<int:channel id="partnerConfigChannel" />
<int:gateway id="partnerService" service-interface="org.service.PartnerService"
		default-request-timeout="5000" default-reply-timeout="5000">
		<int:method name="findConfig" request-channel="partnerConfigChannel" />
</int:gateway>

<int-jpa:retrieving-outbound-gateway entity-manager="entityManager"
		 request-channel="partnerConfigChannel"
		jpa-query="select q from QueueConfiguration q where q.partnerId = :partnerId">
		<int-jpa:parameter name="partnerId" expression="payload['partnerId']" />
</int-jpa:retrieving-outbound-gateway>

和java接口

代码语言:javascript
复制
public interface PartnerService {

    @Payload("partnerId")
    List<QueueConfiguration> findConfig();
}

我叫它

代码语言:javascript
复制
List<QueueConfiguration> qc= partnerService.findConfig();

但是我得到了异常EL1007E:(pos 0):属性或字段'partnerId‘在空上找不到

请告诉我如何通过有效载荷。我尝试通过传递带有映射的消息对象,字符串,但同样的错误。在这种情况下,请告诉我如何通过有效载荷。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-04 12:40:55

@有效载荷(“partnerId”)

此时,不存在要对SpEL表达式进行计算的对象。

它要么是一个文字

代码语言:javascript
复制
@Payload("'partnerId'")

或者参考其他的豆子。

此外,在适配器上,您期望有效负载是带有键partnerId的映射。

代码语言:javascript
复制
expression="payload['partnerId']"

这样就不行了。

如果你想传递一个变量,你应该这样做.

公共接口PartnerService {

代码语言:javascript
复制
List<QueueConfiguration> findConfig(MyClass param);

其中MyClass有一些属性“partnerId”。

代码语言:javascript
复制
List<QueueConfiguration> findConfig(String partnerId);

代码语言:javascript
复制
expression="payload"

我建议你多做一些阅读

票数 2
EN

Stack Overflow用户

发布于 2016-10-05 07:28:46

我修改了我的代码

代码语言:javascript
复制
public interface PartnerService {
List<QueueConfiguration> findConfig(@Payload Message msg);

}

这个电话就像

代码语言:javascript
复制
Map msgMap=new HashMap();
msgMap.put("partnerId", partnerId);
Message msg=MessageBuilder.withPayload(msgMap).build();
List<QueueConfiguration> qc= partnerService.findConfig(msg);

而且效果很好。

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

https://stackoverflow.com/questions/39850303

复制
相关文章

相似问题

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