You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Integration传递自定义对象至HttpRequestExecutingMessageHandler时出现406 Null问题

解决HttpRequestExecutingMessageHandler POST自定义对象时的406 Null错误

嘿,我来帮你搞定这个HttpRequestExecutingMessageHandler传自定义对象时出现的406 Null错误!结合你的代码来看,这个问题大概率和请求内容协商、对象序列化配置有关,咱们一步步来排查解决:

  • 先搞懂406错误的本质
    406 Not Acceptable 通常表示服务器没法生成客户端请求头里Accept字段指定格式的响应,但你是在POST传参时触发的,更可能是请求的Content-Type不对,或者自定义的User对象没法被正确序列化/反序列化,导致服务器解析不了请求体,进而返回异常。

  • 检查HttpRequestExecutingMessageHandler的请求配置
    你的Spring Controller用了@RequestBody接收参数,意味着它只认JSON格式的请求体,所以必须确保请求发送时配置了正确的请求头和消息转换器:

    HttpRequestExecutingMessageHandler handler = new HttpRequestExecutingMessageHandler("http://localhost:8080/accountbalance/exp");
    handler.setHttpMethod(HttpMethod.POST);
    
    // 设置请求Content-Type为application/json
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    handler.setHeaders(headers);
    
    // 配置Jackson消息转换器,确保能将User对象序列化为JSON
    List<HttpMessageConverter<?>> converters = new ArrayList<>();
    converters.add(new MappingJackson2HttpMessageConverter());
    handler.setMessageConverters(converters);
    
  • 检查自定义User类的序列化合法性
    Jackson要正确解析请求体,User类必须是符合要求的POJO:

    • 要有公共的无参构造函数(Jackson默认用这个构造实例)
    • 字段要有对应的getter和setter方法
      示例正确的User类:
    public class User {
        private String name; // 对应你Controller里接收的字段
        
        // 必须的无参构造
        public User() {}
        
        // getter和setter
        public String getName() {
            return name;
        }
        
        public void setName(String name) {
            this.name = name;
        }
    }
    
  • 验证本地服务接口本身是否正常
    你可以先用Postman这类工具直接调用/accountbalance/exp接口,发送JSON格式的请求体(比如{"name": "test"}),看看能不能正常响应。如果直接调用也有问题,那就要排查你的Controller或者AccountBalanceDetailsRepo的逻辑了,比如确认accountBalanceDetailsRepo的查询结果不为null。

  • 额外排查点:请求体是否为null
    在发送请求前,打印一下要传递的User对象内容,确认它不是null。如果对象本身是null,服务器自然会解析出null,也可能触发异常。

按照上面的步骤逐一排查,应该就能解决这个406的问题啦!

内容的提问来源于stack exchange,提问作者Amar Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:03:45