在play framework 2.1.0-java上使用带有-javaagent的instrumentation类时出错

时间:2013-04-10 13:41:44

标签: java playframework instrumentation playframework-2.1 javaagents

我一直在使用一个检测类“SizeOfAgent”来计算我的play 2.0.4环境中的内存需求。 为了做到这一点,我在文件framework \ build.bat中的java命令行上放了“-javaagent:lib \ sizeof.jar” 此jar文件有一个清单文件,其前主要类配置为sizeof.agent.SizeOfAgent 这工作正常,我一直在我的应用程序的某些组件上使用fullSizeOf方法。

升级到Play 2.1.0版本后,此功能不再有效。 我收到错误: play.api.UnexpectedException:意外异常[IllegalStateException:无法访问检测环境。 请检查包含SizeOfAgent类的jar文件是否正确 在java的“-javaagent”命令行参数中指定。]

生成此错误是因为“static Instrumentation inst”返回null:

    public static long sizeOf(Object o, boolean print) {
            if(inst == null) {
                    throw new IllegalStateException("Can not access instrumentation environment.\n" +
                                    "Please check if jar file containing SizeOfAgent class is \n" +
                                    "specified in the java's \"-javaagent\" command line argument.");
            }
            if (print) {
                System.out.println(o.getClass().getName() + " : " + inst.getObjectSize(o));
            }
            return inst.getObjectSize(o);
    }

是否有人尝试使用Play 2.1.0的仪器类?

0 个答案:

没有答案