我正在尝试将 classmexer-0.3.jar 与 tomcat 一起使用来获取我的 Web 应用程序的对象大小。但是,当调用该方法时,我收到以下错误消息:
java.lang.NoClassDefFoundError: Ljavax/transaction/TransactionManager;
java.lang.Class.getDeclaredFields0(Native Method)
java.lang.Class.privateGetDeclaredFields(Class.java:2308)
java.lang.Class.getDeclaredFields(Class.java:1760)
com.javamex.classmexer.MemoryUtil.deepMemoryUsageOf0(MemoryUtil.java:197)
com.javamex.classmexer.MemoryUtil.deepMemoryUsageOf(MemoryUtil.java:104)
com.javamex.classmexer.MemoryUtil.deepMemoryUsageOf(MemoryUtil.java:80)
我能做些什么来解决这个问题?我假设我需要一个带有 TransactionManager 类的 jar,但我不知道是哪一个。
我的项目是在 Eclipse 中使用 Maven 构建的,用于开发并从带有 Jenkins 的 unix 服务器运行。
干杯,
阿列克谢蓝。
编辑:现在看起来正在为更基本的对象工作,这表明设置是正确的。我认为问题是在调用 MemoryUtil.deepMemoryUsageOf(Obj) 时引起的,其中 obj 包含 Google LoadingCache。看来我可能错过了一些来源,关于该来源的任何想法?