Spring integration 如何传递参数@Payload

Spring integration 如何传递参数@Payload,spring-integration,Spring Integration,我有密码 @Payload(“partnerId”) 此时,没有要对SpEL表达式求值的对象 它要么需要是文字 @Payload("'partnerId'") 或者参考其他一些bean 此外,在适配器上,您希望负载是一个带有键partnerId的映射 expression="payload['partnerId']" 所以这行不通 如果你想传递一个变量,你应该这样做 公共接口伙伴服务{ List<QueueConfiguration> findConfig(MyClass p

我有密码


@Payload(“partnerId”)

此时,没有要对SpEL表达式求值的对象

它要么需要是文字

@Payload("'partnerId'")
或者参考其他一些bean

此外,在适配器上,您希望负载是一个带有键
partnerId
的映射

expression="payload['partnerId']"
所以这行不通

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

公共接口伙伴服务{

List<QueueConfiguration> findConfig(MyClass param);
我建议您多做一些。

@Payload(“partnerId”)

此时,没有要对SpEL表达式求值的对象

它要么需要是文字

@Payload("'partnerId'")
或者参考其他一些bean

此外,在适配器上,您希望负载是一个带有键
partnerId
的映射

expression="payload['partnerId']"
所以这行不通

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

公共接口伙伴服务{

List<QueueConfiguration> findConfig(MyClass param);
我建议您多做一些。

我修改了代码

public interface PartnerService {
List<QueueConfiguration> findConfig(@Payload Message msg);
公共接口合作伙伴服务{
列出findConfig(@Payload Message msg);
}

那就这样叫吧

Map msgMap=new HashMap();
msgMap.put("partnerId", partnerId);
Message msg=MessageBuilder.withPayload(msgMap).build();
List<QueueConfiguration> qc= partnerService.findConfig(msg);
Map msgMap=newhashmap();
msgMap.put(“partnerId”,partnerId);
Message msg=MessageBuilder.withPayload(msgMap.build();
List qc=partnerService.findConfig(msg);
而且工作正常。

我修改了代码

public interface PartnerService {
List<QueueConfiguration> findConfig(@Payload Message msg);
公共接口合作伙伴服务{
列出findConfig(@Payload Message msg);
}

那就这样叫吧

Map msgMap=new HashMap();
msgMap.put("partnerId", partnerId);
Message msg=MessageBuilder.withPayload(msgMap).build();
List<QueueConfiguration> qc= partnerService.findConfig(msg);
Map msgMap=newhashmap();
msgMap.put(“partnerId”,partnerId);
Message msg=MessageBuilder.withPayload(msgMap.build();
List qc=partnerService.findConfig(msg);
它工作得很好