`
Nightlee
  • 浏览: 67312 次
社区版块
存档分类
最新评论

javaagent引发的ClassDefNotFoundException

    博客分类:
  • JAVA
 
阅读更多
想用Instrumentation监控cache的实际消耗内存,结果手贱,图方便把Instrumentation类和cache的spring配置文件打到了一个包里,通过在jboss启动脚本里增加 -javaagent:xxx.jar生效

Instrumentation本身没问题,结果是spring里的一些aop类找不到,报“org/aspectj/lang/ProceedingJoinPoint.class”这个类找不到,肯定是spring动态加载找不到这个文件,但奇怪的是lib里明明有这个类。。。

郁闷了半天,重要想到可能和javaagent配置有关,于是豁然开朗了

由于加载xxx.jar的classloader比jboss的classloader更底层,spring先加载了xxx.jar里的xml配置,而不是jboss里配的WIN-INF/lib里的jar,同时这个xml里用到的class也都会从根classloader加载,当然找不到了

解决方法很简单,把Instrumentation单独打个包,别搅合在一起就行了
0
0
分享到:
评论

相关推荐

    javaagent+javassist

    Javaagent和javassist是Java开发中的两个重要工具,它们在软件开发中有着广泛的应用,特别是在动态代理、代码增强和字节码操作等领域。本篇将详细介绍这两个技术,并结合实际示例进行解析。 首先,让我们来了解`...

    java JAVA_OPTS javaagent

    标题中的"java JAVA_OPTS javaagent"涉及到Java应用程序的启动参数设置,特别是`JAVA_OPTS`环境变量和`javaagent`选项,这两个是Java虚拟机(JVM)启动时的关键配置项。`JAVA_OPTS`通常用于传递额外的JVM参数,如...

    JavaAgent例子-agentmain方式

    JavaAgent是一种强大的技术,它允许我们在Java应用程序启动后或运行时动态地注入代码,从而实现对程序行为的监控、性能分析、安全控制等目的。在Java中,有两种启动JavaAgent的方式:premain和agentmain。本示例主要...

    java 代理例子 -javaagent,premain方式实现

    在这个包中,`javaagent`接口是关键,它定义了一个`premain`方法,该方法会在目标应用程序启动之前被调用,允许我们在程序加载时进行干预。 `premain`方法的签名如下: ```java public static void premain(String ...

    jmx_prometheus_javaagent-0.12.0.jar

    代理Java包,用于生成JVM的健康的数据,jmx_prometheus_javaagent-0.12.0.jar

    基于Java Agent实现的自测联调Mock利器.zip

    基于Java Agent实现的自测联调Mock利器.zip基于Java Agent实现的自测联调Mock利器.zip基于Java Agent实现的自测联调Mock利器.zip基于Java Agent实现的自测联调Mock利器.zip基于Java Agent实现的自测联调Mock利器.zip...

    不那么一样的 Java Agent 内存马.zip

    不那么一样的 Java Agent 内存马.zip不那么一样的 Java Agent 内存马.zip不那么一样的 Java Agent 内存马.zip不那么一样的 Java Agent 内存马.zip不那么一样的 Java Agent 内存马.zip不那么一样的 Java Agent 内存马...

    opentelemetry-javaagent-all.jar

    调试!!

    java项目实现热更源码-javaagent

    2. **指定Agent参数**:在Java应用启动时,通过`-javaagent`参数指定Agent的路径和可选参数。例如:`-javaagent:/path/to/your/agent.jar=param1=value1,param2=value2`。 3. **操作类字节码**:Java Agent接收到...

    Java agent使用大全

    Java agent使用大全-编辑再发

    jmx_prometheus_javaagent-0.13.0.jar

    https://pan.baidu.com/s/15TPev6CpXCRIPvXCIreMzA sbnh

    javaagent:基于javaagent开发的APM工具,收集方法的执行次数和执行时间,定时输出成json格式的日志

    java启动参数中就有javaagent,你只需要在JAVA_OPTS中加入-javaagent:/opt/javaagent/javaagent.jar=/opt/javaagent/agent.properties就实现了方法级监控。其中=前指定的是jar包的路径,=后指定的是对agent的一些配置...

    idea maven 搭建java agent项目,手把手教你实现方法耗时统计的java agent.zip

    使用`-javaagent`参数指定你的Agent jar路径,以及`premain`方法的参数,如果有的话。 7. **收集和展示数据**:在Agent中,你需要实现数据的收集和展示。这可能包括将统计信息记录到日志文件,或者通过Socket发送到...

    snmp java agent工具

    1. **SNMP Java Agent**: Java SNMP Agent是用Java语言编写的SNMP协议实现,它使得开发者能够在Java平台上构建符合SNMP标准的网络管理应用。Java SNMP库通常提供API,用于创建MIB对象、处理GET、SET和TRAP请求,以及...

    Minecraft coremod Java Agent旨在修补在许多不同mod中发现的严重安全漏洞.zip

    总的来说,Minecraft coremod Java Agent是保障Minecraft游戏环境安全的重要工具,它通过动态修改字节码来增强模组的安全性,防止因模组漏洞而引发的安全问题。对于玩家来说,了解这一技术不仅能帮助他们更好地理解...

    Java Agent入门学习之动态修改代码

    Java Agent入门学习之动态修改代码 Java Agent是一种强大的技术,可以在Java程序中动态地修改代码,实现AOP(Aspect Oriented Programming)编程。通过Java Agent,可以在不修改原始代码的情况下,实现对代码的修改...

    基于Java Agent实现的自测,联调Mock利器.zip

    Java Agent是一种强大的技术,它允许在程序运行时对字节码进行修改或增强,从而实现诸如性能监控、代码覆盖率分析、动态代理等...不过,由于Java Agent涉及到字节码级别的操作,所以使用时需要谨慎,以免引发其他问题。

    javaAgent实现补丁不重出功能,通过attach实现程序运行时加载,同时通过shell脚本部署到容器内

    JavaAgent是一种强大的技术,它允许在Java应用程序运行时对其进行拦截和修改,而无需停止或重新启动应用。在本文中,我们将深入探讨如何利用JavaAgent来实现补丁的动态加载,以及如何通过shell脚本将其部署到容器...

    apache-skywalking-java-agent-8.9.0

    在这个"apache-skywalking-java-agent-8.9.0"版本中,我们将探讨这个Java代理如何监控JVM服务,并深入理解其相关知识点。 1. **SkyWalking Java Agent**:SkyWalking的Java代理是一个自动探针,可以无侵入地附加到...

    基于Java Agent的动态字节码修改系统.zip

    基于Java Agent的动态字节码修改系统 项目简介 本项目是一个基于Java Agent技术的动态字节码修改系统,旨在通过Java Agent在JVM加载类文件时对特定的类进行字节码修改。系统支持通过系统默认配置和数据库配置两种...

Global site tag (gtag.js) - Google Analytics