• Bouncy Castle内存溢出


    现象:

    堆内存溢出,java.lang.OutOfMemoryError: Java heap space
    用jmap查看,显示
    num     #instances         #bytes  class name
    ----------------------------------------------
       1:       6736096      269443840  java.util.LinkedHashMap$Entry
       2:       1360211      116788016  [C
       3:       3560635      113940320  java.util.Hashtable$Entry
       4:       1648844       92335264  java.security.Provider$Service
       5:       3181146       76347504  java.security.Provider$ServiceKey
       6:         21269       54483872  [Ljava.util.HashMap$Entry;
       7:       1456006       46592192  java.lang.String
       8:          5837       26712568  [Ljava.util.Hashtable$Entry;
       9:        722313       23248472  [Ljava.lang.Object;
      10:        142687       20602688 
      11:        142687       19416024 
      12:        718388       17241312  java.util.ArrayList
      13:         13487       14511200 
      14:         13487       10430624 
      15:         11194        8157360 
      16:        127989        7303936 
      17:         29127        3953880  [B
      18:         19410        3739704  [I
      19:         35613        3133944  java.lang.reflect.Method
      20:         69481        2223392  java.util.HashMap$Entry
      21:          2886        2137144 
      22:         14176        1474304  java.lang.Class
      23:         18304        1127368  [S
      24:         21231        1068624  [[I
      25:         12681         811584  com.ibatis.sqlmap.engine.mapping.parameter.ParameterMapping
      26:         12681         811584  com.ibatis.sqlmap.engine.mapping.parameter.ParameterMapping
      27:         11454         641424  java.util.LinkedHashMap
      28:          9802         627328  com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.SqlTag
      29:          9802         627328  com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.SqlTag
      30:         20443         490632  com.ibatis.sqlmap.engine.mapping.sql.SqlText
      31:         20443         490632  com.ibatis.sqlmap.engine.mapping.sql.SqlText
      32:          9738         467424  java.util.HashMap
      33:          9231         443088  org.apache.catalina.loader.ResourceEntry
      34:         10718         428720  java.lang.ref.SoftReference
      35:         21067         416344  [Lcom.ibatis.sqlmap.engine.mapping.parameter.ParameterMapping;
      36:         21067         416344  [Lcom.ibatis.sqlmap.engine.mapping.parameter.ParameterMapping;
      37:         12940         414080  java.lang.ref.WeakReference
      38:         19937         413624  [Ljava.lang.Class;
      39:           660         385440 
      40:         10423         376192  [Ljava.lang.String;
    解决方案:
    /usr/local/java/jdk1.6.0_37/jre/lib/security/java.security 加上一行 security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
    修改RSAUtil new org.bouncycastle.jce.provider.BouncyCastleProvider() -> "BC"
    static{
        if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null){
            logger.info("security provider BC not found");
            Security.addProvider(new BouncyCastleProvider());
        }
    }
    部署:从WAR中移出bouncycastle的jar,移到/usr/local/java/jdk1.6.0_37/jre/lib/ext下面(不需要加静态导入),移到tomcat/lib下面(需要加静态导入)
  • 相关阅读:
    Android: ListView与Button的共存问题解决
    Android DatePickerDialog和TimePickerDialog显示样式
    Android日期操作
    android 8种对话框(Dialog)使用方法汇总
    FastJson将json解析成含有泛型对象,内部泛型对象再次解析出错的解决办法(Android)
    Android中解析JSON格式数据常见方法合集
    java使用json-lib库的json工具类.
    EditText限制输入的几种方式及只显示中文汉字的做法
    android:layout_gravity和android:gravity属性的区别
    1.0 Android基础入门教程
  • 原文地址:https://www.cnblogs.com/gisblogs/p/5074082.html
Copyright © 2020-2023  润新知