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

访问Bean时出现空指针异常,求排查配置类与模块代码问题

排查Bean注入时的空指针异常原因

我一眼就看到你配置类里的一个明显问题,这大概率就是空指针的根源:

先看你的TopLevelConfig中的myMapper方法代码:

@Configuration
public class TopLevelConfig {
    @Bean
    public MyMapper myMapper() {
        MyMapper mapper = new MyMapper();
        mapper.registerModule(new MetadataModule());
        return new MyMapper(); // 这里是关键错误!
    }
}

问题分析

你先创建了一个MyMapper实例mapper,并且给它注册了MetadataModule,但最后返回的却是一个全新的、完全未配置的MyMapper实例。这就导致Spring容器中管理的Bean根本不是你刚才配置好的那个——也就是说,你注册的MetadataModule完全没生效。

后续当你使用这个Bean时,MetadataModule里的setupModule逻辑(比如注册PayloadDeserializer的操作)根本没有被执行过。当代码尝试处理Payload类的反序列化时,找不到对应的反序列化器,或者相关的上下文对象因为未初始化而变为null,最终触发空指针异常。

修复方案

只需要把返回语句改成返回你已经配置好的mapper实例即可:

@Bean
public MyMapper myMapper() {
    MyMapper mapper = new MyMapper();
    mapper.registerModule(new MetadataModule());
    return mapper; // 返回配置完成的实例
}

如果修复后仍然有空指针,你可以进一步检查MetadataModule的setupModule方法中是否有未判空的操作(比如setupContext是否可能为null),但目前来看,配置类里的返回错误是最直接的诱因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 07:02:29