Skip to content

调用消息路由接口,报空指针 #3110

@jackevinsophia

Description

@jackevinsophia

提问前,请确保阅读过项目首页说明以及wiki开发文档相关内容,尤其是常见问题部分。完成内容后,请务必移除包括本句在内的无用内容,以免影响阅读,否则直接关闭,谢谢合作~

另外如果确认属于bug,而且已明确如何修复,请参考贡献指南直接提交PR,省的浪费时间在这里描述问题,非常感谢配合

简要描述

调用消息路由接口,报空指针

模块版本情况

  • WxJava 模块名: weixin-java-mp
  • WxJava 版本号: 4.5.3.B和4.5.4.B

详细描述

问题位置:
me.chanjar.weixin.mp.api.WxMpMessageRouter#route(me.chanjar.weixin.mp.bean.message.WxMpXmlMessage, java.util.Map<java.lang.String,java.lang.Object>, me.chanjar.weixin.mp.api.WxMpService)

问题描述:
当 this.wxMpService为空时,256行会报空指针异常,260行也有类似问题。

产生原因:
new WxOpenMessageRouter 时,会给 this.wxMpService 赋值null

解决方法:增加如下判断
if(null != this.wxMpService) {
appId = this.wxMpService.getWxMpConfigStorage().getAppId();
}else{
appId = wxMpService.getWxMpConfigStorage().getAppId();
}

   if(null != this.wxMpService)  {
           this.wxMpService.switchoverTo(appId);
    }

日志

java.lang.NullPointerException: null
at me.chanjar.weixin.mp.api.WxMpMessageRouter.route(WxMpMessageRouter.java:257)
at me.chanjar.weixin.open.api.impl.WxOpenMessageRouter.route(WxOpenMessageRouter.java:24)
at me.chanjar.weixin.open.api.impl.WxOpenMessageRouter.route(WxOpenMessageRouter.java:20)
at com.shudong.community.message.service.open.impl.WechatOpenServiceImpl.eventCallback(WechatOpenServiceImpl.java:535)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions