客户端调用获取商户提现产品手续费的接口,出现异常org.apache.thrift.TApplicationException: Internal error processing getMerchantFeeVO

接下来,分析服务端的日志:

如下info文件的日志:

可疑的是从db获取CP05产品信息时返回0行。

再看error日志文件,发现了NPE异常:

2019-03-04 09:59:17,660 ERROR [pool-4-thread-20] (ProcessFunction.java:47) - Internal error processing getMerchantFeeVO
java.lang.NullPointerException
at com.emaxcard.manage.common.cache.RedisUtil.isDistinguishBankCardType(RedisUtil.java:536) ~[manage_module-1.0-SNAPSHOT.jar:?]
at com.emaxcard.manage.common.cache.RedisUtil.getRate(RedisUtil.java:440) ~[manage_module-1.0-SNAPSHOT.jar:?]
at com.emaxcard.manage.common.cache.RedisUtil.merchantRedis(RedisUtil.java:150) ~[manage_module-1.0-SNAPSHOT.jar:?]
at com.emaxcard.manage.rpc.service.impl.MerchantRedisServiceImpl.getMerchantFeeVO(MerchantRedisServiceImpl.java:44) ~[manage_server.jar:?]
at com.emaxcard.manage.rpc.service.MerchantRedisService$Processor$getMerchantFeeVO.getResult(MerchantRedisService.java:719) ~[manage_thrift-1.0-SNAPSHOT.jar:?]
at com.emaxcard.manage.rpc.service.MerchantRedisService$Processor$getMerchantFeeVO.getResult(MerchantRedisService.java:699) ~[manage_thrift-1.0-SNAPSHOT.jar:?]
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38) [libthrift-0.11.0.jar:0.11.0]
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) [libthrift-0.11.0.jar:0.11.0]
at org.apache.thrift.TMultiplexedProcessor.process(TMultiplexedProcessor.java:134) [libthrift-0.11.0.jar:0.11.0]
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:518) [libthrift-0.11.0.jar:0.11.0]
at org.apache.thrift.server.Invocation.run(Invocation.java:18) [libthrift-0.11.0.jar:0.11.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]

如下是堆栈里的isDistinguishBankCardType方法代码,可以看出,product对象是null,后文引用它的属性时,自然出现了NPE。

    public boolean isDistinguishBankCardType(String productCode) {
//根据产品code获取产品
Product product = productDao.selectByCodeEnable(productCode);
if ("DPTPAY".equals(product.getTrxType())) {
return false;
} else if ("PAYMNT".equals(product.getTrxType())) {
if (product.getName().indexOf(com.emaxcard.manage.common.utils.Constants.QUICKPAY2) >= 0 ||
product.getName().indexOf(com.emaxcard.manage.common.utils.Constants.B2B) >= 0 ||
product.getName().indexOf(com.emaxcard.manage.common.utils.Constants.QUAGRP) >= 0) {
return false;
}
}
return true;
}

也就是说,服务端程序处理出现未经捕获的Runtime异常,自然,客户端调用这个RPC接口就抛出了Internal error processing**

又见thrift异常之TApplicationException: Internal error processing..的更多相关文章

  1. Eclipse 在启动发生错误异常:An internal error occurred during: "Initializing Java Tooling". java.lang.NullPointerException的解决办法

    异常现象: 打开Eclipse,出现 An internal error occurred during: "Initializing Java Tooling". java.la ...

  2. Eclipse启动发生的错误:An internal error occurred during: "Initializing Java Tooling".

    1.启动Eclipse时,初始化异常:An internal error occurred during: "Initializing Java Tooling". 解决方案:wi ...

  3. ORA-00600: internal error code, arguments: [2662], [0], [1106971], [0], [1107731], [12583040]

    今天是2014-06-06,在进行数据库恢复的时候出现了一个久违的ora-600 [2662]错误.特整理例如以下: 问题描写叙述: system及数据文件误删,採用恢复数据文件的方式将数据库恢复到開 ...

  4. ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], []

    今天在PlateSpin Forge(关于PlateSpin相关介绍,请见最下面部分简单介绍) 复制出来的一台数据库服务器上,测试数据库能否正常启动时,遇到了"ORA-00600: inte ...

  5. ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []

    一ORACLE 10.2.0.5.0 标准版的数据库的告警日志出现ORA-00600错误,具体错误信息如下所示 Errors in file /u01/app/oracle/admin/SCM2/bd ...

  6. Eclipse启动时出现错误 An internal error occurred during: “Updating indexes”

    在Eclipse的workspace下有个.metadata文件夹,Eclipse出现异常的log文件就在这个目录下. 最近出现了这样的错误: 查看日志文件发现:     !ENTRY org.ecl ...

  7. Eclipse无法启动报An internal error occurred during: "reload maven project". java.lang.NullPointerException

    由于没有正常关机导致eclipse无法将数据正常写入配置文件导致无法启动.报这样一个异常 An internal error occurred during: "reload maven p ...

  8. Oracle ORA-03137: TTC protocol internal error : [12333] 故障分析

    程序通过JDBC 连接数据库异常,报 ORA-03137[12333]的错误. 当前程序的JDBC 驱动版本:ojdbc16-11.2.0.1.0.jar 数据库版本: 11.2.0.3 一. Log ...

  9. An internal error occurred during: "Retrieving archetypes:". GC overhead limit exceeded

    An internal error occurred during: "Retrieving archetypes:".GC overhead limit exceeded 异常, ...

随机推荐

  1. 咸鱼入门到放弃3--tomcat

    Tomcat学习与使用 一. Tomcat安装及配置 二.项目部署(虚拟目录映射) Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射. 虚 ...

  2. 向量 dot cross product 点积叉积 几何意义

    向量 dot cross product 点积叉积 几何意义 有向量 a b 点积 a * b = |a| * |b| * cosθ 几何意义: 1. a * b == 0,则 a ⊥ b 2. a ...

  3. Windows Vue 安装

    https://nodejs.org/dist/v6.9.5/node-v6.9.5-x64.msi 新建文件夹 node_global新建文件夹 node_cachenpm config set p ...

  4. 网页布局之grid

    学习网格布局时,你可能会在网络上看到很多文章,内容不同,属性不同,真是让人摸不着头脑,到底哪个才是正确的?看了本篇文章,我想你会豁然开朗.比如,一会儿用grid-rows,一会儿用grid-defin ...

  5. 第一篇 Flask初始

    Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用 ...

  6. 构建MHA实现MySQL高可用集群架构

    一.MHA简介 MHA(Master HighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开 ...

  7. 杭电1257 dp(java)

    最少拦截系统 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的 ...

  8. angular.js使用ui-router注入报错,这里是版本问题导致的

    报错如下: common.ts:604Uncaught SyntaxError: Unexpected token ) stateEvents.ts:211Uncaught SyntaxError: ...

  9. __x__(34)0908第五天__ 定位 position

    position 定位 指将原始摆放到页面的任意位置. 继承性:no 默认值:static        没有定位,原始出现在正常的文档流中 可选值: static :    默认值,元素没有开启定位 ...

  10. 2.7python简历心得(重点)

    2019-2-7 20:07:20 绝地求生被盗了,...因为群邮件木马导致! 正好不要想买显卡啦!又省了好多钱!!! 努力多学技能!并且深入了解,精通自己技能!!!坚持学习!! 要学会拓展自己的技能 ...