WxaConfigKit.getWxaConfig取到空的WxaConfig

在多个小程序公用一个后台的情况下,通过WxaConfigKit.getWxaConfig获取WxaConfig,有一定的概率会获取到null,然后直接抛出异常并提示“需事先调用 WxaConfigKit.putWxaConfig(wxaConfig) 将 appId对应的 WxaConfig 对象存入,如JFinalConfig.onStart()中调用,才可以使用 WxaConfigKit.getWxaConfig() 系列方法”我输出CFG_MAP这个容器,发现里面是有我存入的小程序配置对象的,这个问题有人遇到吗?怎么解决

评论区

scotte

2020-07-06 09:36

咋没人回复呀

JFinal

2020-07-06 10:04

WxaConfigKit.putWxaConfig(wxaConfig) 以后就不会再获取到 null 了

如果获取到了 null 通常如下:
1:获取先于 put, 但自己未察觉
2:getWxaConfig 时的 key 值不对,例如大小写问题,前后空格字符问题等等

scotte

2020-07-06 10:27

@JFinalputWxaConfig的操作是在项目启动的时候就进行了,并且我输出容器中的内容发现config对象是存在了的。不是所有的getWxaConfig都拿到null,所以感觉不是获取先于 put 和 getWxaConfig 时的 key 值不对 这两个原因

JFinal

2020-07-06 10:40

@scotte 单步调试,找到原因

杜福忠

2020-07-06 10:52

@scotte https://gitee.com/jfinal/jfinal-weixin/blob/master/src/main/java/com/jfinal/wxaapp/WxaConfigKit.java
private static final Map CFG_MAP = new ConcurrentHashMap<>();
一个 CFG_MAP.put
和 CFG_MAP.get
这里面没有什么操作,再检查检查业务代码

热门反馈

扫码入社