【无标题】

报错解释:

这条错误信息表明,在尝试从某个名为Deliver的队列中获取数据时,得到了一个NULL值。这通常发生在基于消息队列的服务(如GSM短信网关)中,服务尝试从预定的队列中获取下一条要传递的短信数据,但没有找到任何数据。是从依赖gsmpclient 3.1中抛出的

<dependency>
   <groupId>com.wisentsoft</groupId>
   <artifactId>gsmpclient</artifactId>
   <version>3.1</version>
   <scope>compile</scope>
</dependency>

解决方法:

检查GSM短信网关服务(可能是gsmpcPSrv)的配置,确保它已正确设置,并且指向正确的消息队列。

确认消息队列中确实有待传送的短信数据。如果没有,这可能不是一个问题。

检查短信网关服务的日志文件,以确定是否有其他相关错误或警告信息。

如果是程序代码问题,检查代码中负责从队列中获取数据的部分,确保逻辑正确,并且正确处理空队列的情况。

如果以上步骤都无法解决问题,可能需要重启GSM短信网关服务或者整个系统,以排除临时性的问题。

如果问题依然存在,可能需要联系软件供应商或者专业技术支持寻求帮助。

注:该错误会导致程序进入死循环,请谨慎(我用的是3.1版本,其它版本不知道)。

在com.wisentsoft.service.sms.gsmp.GsmpcPSrv.startDeliverThread()中发生死循环,如下所示:

private void startDeliverThread() {
        if (this.isOldVersion) {
            (new Thread() {
                public void run() {
                    GsmpCPSrv.this.log4j.debug("DeliverThread started......");

                    while(true) {
                        while(GsmpCPSrv.this.started.get()) {
                            GsmpDeliver[] mos = GsmpCPSrv.this.getDelivers(10);
                            if (mos != null) {
                                GsmpDeliver[] var5 = mos;
                                int var4 = mos.length;

                                for(int var3 = 0; var3 < var4; ++var3) {
                                    GsmpDeliver mo = var5[var3];
                                    GsmpCPSrv.this.processDeliver(mo);
                                }
                            } else {
                                GsmpCPSrv.this.log4j.debug("Get NULL From Deliver Queue!!!");

                                try {
                                    Thread.sleep(1000L);
                                } catch (InterruptedException var6) {
                                    InterruptedException e = var6;
                                    e.printStackTrace();   //此处未终止循环
                                }
                            }
                        }

                        return;
                    }
                }
            }).start();
        }

    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值