网站首页 > 开源技术 正文
最近在开发的时候碰到一个问题,就是在用到WxJava接口中去对AES进行解析的时候,碰到了拷贝数组越界异常
me.chanjar.weixin.common.error.WxRuntimeException: java.lang.IllegalArgumentException: 20 > -1508095332
经过排查之后发现这是由于在公众号里面配置的消息加密模式为安全模式,那么所有的信息都会用AES进行加密之后发送过来,而这个在解析的时候会报错,异常报错正常来说也没什么问题,后面去解决就好了,但是随之而来发现另一个问题,就是内存从原来的700M,暴涨到7G,这个内存暴涨情况就很严重了,会对其他服务有影响,于是进行排查,发现这个是在jdk 1.8里面出现的内存暴涨的源头,于是查找到需要去给jdk打补丁。
- JRE/JDK 8:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
如果安装了JRE,将两个jar文件放到$JAVA_HOME/lib/security目录下覆盖原来的文件
如果安装了JDK,将两个jar文件放到$JAVA_HOME/jre/lib/security目录下覆盖原来文件
由于我们的系统是在Docker中运行的,在Docker中,如果你在容器运行时对文件进行修改,当容器重新启动时,所有的改动都将会丢失。这是因为Docker容器的设计理念是"不可变的",也就是说,一旦容器创建,其内部的状态就不应再改变。这样做的好处是可以确保容器的可移植性和可复制性。为了在Docker中给JDK打补丁,就需要在Docker镜像构建时就应用这些补丁。
简单点说就是要把这两个补丁文件放在我们的jar包里面一起传到服务器,然后Docker构建的时候自动把这两个补丁文件放到对应目录上,这样才能在Docker上完成修复的过程。
COPY target/classes/your-patch-file $JAVA_HOME/jre/lib/security/your-patch-file
打包发布之后,发现程序依旧会有报错,但是目前来看内存不会暴涨到7G的情况,后面还要继续观察,看是否需要哪里进行优化。
猜你喜欢
- 2024-10-12 Java实现微信支付程序的解决方案(java实现微信支付程序的解决方案有哪些)
- 2024-10-12 微信支付的SDK曝出重大漏洞,看程序开发人员怎么讲?
- 2024-10-12 JAVA 线上故障排查完整套路!牛掰(java在线运行平台)
- 2024-10-12 Android 11 安装外部来源应用需要重启 APP
- 2024-10-12 网络安全之Springboot heapdump信息泄露复现
- 2024-10-12 Fanx 语言 3.2 发布,全面支持中文编程
- 2024-10-12 如果网站的 Cookie 特别多特别大,会发生什么情况?
- 2024-10-12 JAVA后端推送企业微信消息到普通微信
- 2024-10-12 xk-time 1.1.1 发布,Java 时间工具包
- 2024-10-12 微信、企业微信和支付窗极速SDK三合一,JeeWx-api 1.2.0版本发布
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)