This theme is built with|

ageovb

园龄:13年3个月粉丝:13关注:0

2022-04-30 20:57阅读: 242评论: 0推荐: 0

一个 HBase 无法写入的奇怪问题

问题现象

本地环境测试可以正常写入 HBase,但是打包部署到测试环境上之后,HBase 就写入失败了,并且报错 java.lang.reflect.invocationtargetexception

问题分析

将测试环境的 yml 拿到本地,Debug 模式启动应用,发现可以写入 HBase。

这就很奇怪了,完全想不通,一点也没有头绪。

本着死马当活马医,将测试和本地的日志进行对比,当我对比到快结束的时候:
JDK

发现两者的 JDK 版本不一致,测试环境的是 JDK 11,而本地的是 JDK 8,觉得可能是这个原因。

下面进行验证,点击 Application 右边的下拉,选择「Edit Configuration」:
Edit Configuration

将运行时 JDK 版本修改为 java 11,点击「OK」进行保存:
运行时 JDK

重新进行测试,果然报了一样的错误。

问题原因

测试环境的 JDK 与本地环境的 JDK 不一致,后面深入分析了下是因为 JDK 8 与 JDK 11 的反射机制存在差异,导致报错 java.lang.reflect.invocationtargetexception

解决方法

将本地的 JDK 8 文件夹拷贝的服务器,使用命令 "D:\Program Files\jdk-8\bin\java.exe" -jar analysis-1.1.0.jar 启动应用。

本文作者:ageovb

本文链接:https://www.cnblogs.com/ageovb/p/16211288.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   ageovb  阅读(242)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起