对接微信接口中间出现一些心酸的过程。明明本地测试没有问题,部署到服务器就出现 java.security.InvalidKeyException: Illegal key size,然后开始漫长的解决搜索过程。
day1、搜索CSDN
查看了很多文章,其中这个写得比较齐全
java.security.InvalidKeyException: Illegal key size错误
分析错误原因:解密长度引起的
提出来两个解决办法:
1 、有policy 文件夹
找到java.security
#crypto.policy=unlimited
把 # 注释去掉
2、没有policy文件夹
直接替换 local_policy.jar,US_export_policy.jar两个jar包。
JDK8下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
很遗憾,根据他提供办法也没有。然后一直百度其它的。还是没有解决
我当时安装jdk是:jdk1.8.0_333 (各种百度说安装 jdk1.8.0_251更高级版本)。
理论上应该可以解决问题了。这是陷入是不是自己代码问题的猜测(这是程序员的常态,也是为什么头发少的原因),排查的凌晨3点左右,还是没有解决,然后去睡觉了
day2、搜索微信社区
查看很多文章,也跟上门描述一样的方法这边,就列举2个
[已解决]InvalidKeyException: Illegal key size
微信支付V3支付通知JAVA解密出现Illegal key size错误
也很遗憾这个问题没有解决,在晚上2点左右的,我决定求助淘宝,做一个问题图片
他们都付费解决问题的,在淘宝客服,让你添加QQ,微信,然后各种报价,有400,300,200,150
100的他们直接不做
这套是淘宝程序调试bug的价格报价。一般他们会给你报价
day3 准备打算选150元,帮忙调试
做最后的打算,如果这是自己处理不成功,决定花150,让其它人排查一下。但是我这次竟然处理成功了。
下面分享操作解决步骤。
1、卸载之前jdk
yum -y remove 您的jdk版本
或者 打开 vim /etc/profile 把之前配置去掉
export JAVA_HOME=/www/server/java8/jdk1.8.0_251
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
2、安装jdk(我选择安装open Jdk)
- yum列表展示jdk相关软件
- yum list | grep jdk
- 正式安装
yum -y install java-1.8.0-openjdk.x86_64
3、验证是安装成功,安装的位置
- 验证是否安装成功
java -version
- 查询安装位置
which java
4、替换两个jar包
替换两个jar包,把之前的2个可以做备份起来
下载位置上面有提供
如果怕官网下载麻烦,可以这里下载 https://wwi.lanzoup.com/iXGs404zm1dg(jdk8)
5、重新启动tomcat
狂喜,说不出的感动,马上写文章记录一下。就此完美解决。核心是换一个jdk
总结
程序员的生活是踏实的,也是苦逼的。没有人知道在出现一个小bug。他付出多少时间去解决。
希望这篇文章能帮助更多的程序员,让他们的开发和生活更加顺利美满。谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107071.html