我的问题的根源是我正在尝试使用部署在JBoss AS7上的Web应用程序中的SizeOf sourceforge project并为ClassNotFoundException
获取net.sourceforge.sizeof.SizeOf
。我将-javaagent:/path_to_jar/SizeOf.jar
添加到服务器的JAVA_OPTS
,并在服务器启动时看到premain方法中的System.out.println
(JAVAGENT:为类SizeOf调用premain instrumentation)。但是,当我尝试从我的servlet的doGet方法调用SizeOf.sizeOf(obj)
时,应用程序失败并带有前面提到的ClassNotFoundException
。
如果有人能告诉我如何使用JBoss AS7,这将有所帮助(我在Eclipse运行配置中工作 - 相当于从命令行运行)。除了这一点之外,我真正想做的是了解类加载如何为Java代理工作。我能找到的最好的文档是the offical JVM docs,而且非常稀疏。关于类加载的所有内容都是系统类加载器将加载Premain-Class。我看到一篇博文,建议不需要将jar放在类路径上,因为-javaagent JVM参数会处理这个问题,因此看起来我不应该将SizeOf jar添加为AS7模块。我错过了什么吗?
答案 0 :(得分:2)
需要执行以下操作: