gpt4 book ai didi

java - ClassNotFoundException 与 java 代理 (-javaagent :jarpath)

转载 作者:行者123 更新时间:2023-12-02 07:39:59 26 4
gpt4 key购买 nike

我的问题的根源是我正在尝试使用 SizeOf sourceforge project从部署在 JBoss AS7 上的 Web 应用程序中获取 net.sourceforge.sizeof.SizeOfClassNotFoundException。我将 -javaagent:/path_to_jar/SizeOf.jar 添加到服务器的 JAVA_OPTS 中,并从服务器上的 premain 方法中查看 System.out.println启动(JAVAGENT:调用类 SizeOf 的 premain 检测)。但是,当我尝试从 servlet 的 doGet 方法调用 SizeOf.sizeOf(obj) 时,应用程序失败并出现上述 ClassNotFoundException

如果有人能告诉我如何让它与 JBoss AS7 一起工作,那将会很有帮助(我让它在 Eclipse 运行配置中工作——相当于从命令行运行)。除此之外,我真正想做的是了解 Java 代理的类加载如何工作。我能找到的最好的文档位于 the offical JVM docs ,而且非常稀疏。关于类加载,它只说 Premain-Class 将由系统类加载器加载。我看到一篇博客文章建议不需要将 jar 放在类路径上,因为 -javaagent JVM 参数会处理这个问题,所以看来我不必将 SizeOf jar 添加为AS7 模块。我错过了什么吗?

最佳答案

需要执行以下操作:

  • 为代理创建模块:创建文件夹modules/net/sourceforge/sizeof/main并添加sizeof.jar和module.xml
  • 将模块添加到启动配置:将 JBOSS_MODULES_SYSTEM_PKGS="net.sourceforge.sizeof"添加到 bin/standalone.conf
  • 还在 bin/standalone.conf 中,将 -javaageent:../modules/net/sourceforge/sizeof/main/sizeof.jar 附加到 JAVA_OPTS

关于java - ClassNotFoundException 与 java 代理 (-javaagent :jarpath),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com