【问题标题】:Spring Integration - Adding custom headers in MessageSpring Integration - 在消息中添加自定义标头
【发布时间】:2020-02-16 05:17:06
【问题描述】:

我正在使用 Spring Integration 过滤器对传入的有效负载进行结构验证,如果验证失败,那么我想在原始消息中添加一些自定义标头。

过滤代码如下:

@Service("structureValidationFilter")
public class StructureValidationFilter implements MessageSelector {

@Override
public boolean accept(Message<?> message) {
    // TODO Auto-generated method stub
    boolean status=true;

    if(message.getPayload() instanceof CFKRequestBody) {
        CFKRequestBody body=(CFKRequestBody)message.getPayload();
        if(!body.getInitiatingPartyId().equalsIgnoreCase("BPKV")) {
            message = MutableMessageBuilder.fromMessage(message).
                    setHeader("BPKV_ERROR_CODE", "Ïnvalid Initiating part id").
                    setHeader("HTTP_STATUS", "400").build();

            return false;   
        }

    }
    return status;
}

}

但是消息中没有填充标题。 无法看到下一个组件中添加的标题。 我在这里做错了什么。

【问题讨论】:

    标签: java spring spring-integration spring-integration-http


    【解决方案1】:

    你不能替换一个参数并期望它被传播到下一个组件; Java 不是那样工作的。您的新消息将被丢弃。

    使用服务激活器而不是过滤器并返回新消息,或null,这是在该点结束流程的信号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多