专栏首页10km的专栏java:commons pool2 在android下的使用

java:commons pool2 在android下的使用

版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/81134925

Apache Commons Pool是一个开源的实现资源池的中间件。我们的项目中用到了它(Commons Pool 2),最近开始在android下测试时发现会抛出ClassNotFoundException异常,就是找不到java.lang.management.ManagementFactory类。 根本的原因就是Commons Pool用到了JMX,而android并不支持JMX。

github上这个错误报告有跟贴说明了原因《Jedis 2.3.x can’t use on Android》

这是2014年的报告 ,现在Commons Pool 2已经解决了这个问题。 解决问题的办法也很简单,org.apache.commons.pool2.impl.BaseObjectPoolConfig设计有一个jmxEnabled成员用于调用方设置是否支持JMX,所以在创建GenericObjectPool对象时,构造方法中GenericObjectPoolConfig参数只要指定jmxEnabledfalse就可以了。

示例代码如下:

    // 静态常量
    private static final boolean jmxEnable = isJmxEnable();
    /**
     * 判断JVM是否支持JMX,android下返回{@code false}
     * @return
     */
    private static boolean isJmxEnable(){
        try{
            Class.forName("java.lang.management.ManagementFactory");
            return true;
        }catch(ClassNotFoundException e){
            return false;
        }
    }
    void testSomething(GenericObjectPoolConfig poolConfig){
        ...
        poolConfig.setJmxEnabled(jmxEnable);
        GenericObjectPool<T>  internalPool = new GenericObjectPool<T>(factory, poolConfig);
        ...
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux gnu c 复制文件实例(open,close,creat,read,write)

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • Netscope:支持Caffe的神经网络结构在线可视化工具

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10...

    用户1148648
  • Intel B150芯片组(usb3.0)主板的电脑上安装Win7

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10...

    用户1148648
  • 一个小企业的数据观

    “大数网”还处于创业的早期,人员不算多,但也麻雀虽小、五脏俱全。虽然目前仍是一家名副其实的小企业,但大数据网这两年着实感受到了数据所带来的挑战。今天,之所以结合...

    大数据在线
  • 最易写出bug?Python命名空间和作用域介绍

    简单的说,命名空间就是一种“名称-对象”的映射表,使得我们可以通过对象指定的名称来访问它们。

    zhangqibot
  • 中文命名可能有什么坏处?

    在最近的一个报告分析中,再次遭遇到全中文的数据结构设计。从图示中可以看到,所有的表名、索引名等,都是用中文命名的。 我们不考虑面向对象、方法那回事,单纯从技术角...

    数据和云
  • java之Optional的使用和源码分析

    ok,今天自己分享下使用jdk提供的Optional工具类如何使用进行对null的判空操作。还是一贯的风格,先看下示例程序。

    后端Coder
  • 【Science】脚踏“两条船”的科学家们正在走向成功

    1990年,Srinivas Tadigadapa开始接受科研训练,当时他憧憬未来成为一名工程学科的教授。然而,当经过7年的博士生与博士后生涯之后,他觉得自己应...

    新智元
  • STL源码剖析-set容器

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

    bear_fish
  • 关系数据库语言SQL简介

    SuperHeroes

扫码关注云+社区

领取腾讯云代金券