0 0

javassist javaagent web工程部署问题30

项目使用javassist+javaagent 实现字节码增强,在java工程里单元测试都没问题,但部署到resin中,报错如下:

Exception in thread "main" java.lang.NoClassDefFoundError: javassist/NotFoundException
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
        at java.lang.Class.getMethod0(Class.java:2670)
        at java.lang.Class.getMethod(Class.java:1603)
        at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:294)
        at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338)
Caused by: java.lang.ClassNotFoundException: javassist.NotFoundException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 6 more
FATAL ERROR in native method: processing of -javaagent failed

但是在WEB-INF/lib下明明有javassist.jar,后将javassist.jar移至resin.home/lib下,报另外错误:

javassist.NotFoundException: xxxxxxxx.UsersDO
        at javassist.ClassPool.get(ClassPool.java:450)
        at com.wowotrace.trace.aop.TraceClassFileTransformer.transform(TraceClassFileTransformer.java:45)
        at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
        at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)


这个可能跟javassist的搜索路径有关,但网上查了,试过解决不了该问题,各位大神,救 命呀!
2014年2月26日 11:14
目前还没有答案

相关推荐

    javaagent+javassist

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

    JavaAgent:Javassist 与 Asm JavaAgent 字节码动态编程项目

    在这个“JavaAgent: Javassist与Asm JavaAgent字节码动态编程项目”中,我们将深入探讨如何利用Javassist和ASM这两个库来实现JavaAgent。 首先,Javassist是一个开源的Java字节码操作框架,它使得开发者可以在运行...

    agent+javassist例子

    在IT行业中,`Java Agent`和`javassist`是两个非常关键的技术,它们在软件开发、测试和性能优化中发挥着重要作用。`Java Agent`允许我们对Java应用程序进行预处理,比如字节码注入,而`javassist`库则提供了一个方便...

    JavaAgent例子-agentmain方式

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

    javassist+javaAgent探针, 实现jvm退出时打印线程栈日志

    javassist+javaAgent探针, 实现jvm退出时打印线程栈日志,方便排查是哪个线程调用了退出,以及退出码

    java项目实现热更源码-javaagent

    为了成功实现这个项目,你需要理解Java字节码操作(如ASM、ByteBuddy或Javassist库),并熟悉Java Agent的相关API。同时,了解JVM内存模型和类加载机制也是必不可少的。通过学习这些知识,你将能够创建一个高效且...

    javassist, Java字节码工程工具包.zip

    javassist, Java字节码工程工具包 Java字节码工程工具包 版本 3版权所有( C ) 1999 -2017按 Shigeru Chiba,保留所有权利。Javassist ( Java编程助手) 使Java字节码操作简单。 它是一个类库,用于在Java中编辑字节码

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

    在本文中,我们将深入探讨如何利用JavaAgent来实现补丁的动态加载,以及如何通过shell脚本将其部署到容器环境中,尤其是Docker容器。 首先,让我们了解JavaAgent的核心概念。JavaAgent是Java平台提供的一种机制,...

    javassist,Java字节码工程工具包.zip

    Java字节码工程工具包,通常被称为Javassist,是一个强大的开源项目,它为Java开发者提供了在运行时操作和分析类以及字节码的能力。这个工具包被广泛应用于动态代理、AOP(面向切面编程)、代码生成以及单元测试等...

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

    javaagent是一个简单优雅的java agent,利用java自带的instrument特性+javassist字节码编辑技术,实现了无侵入的方法级性能监控。相比于NewRelic或者开源的,以及阿里的,本工具主打的是简单,我们只记录每个方法的执行...

    javaagent-samples:Java乐器样本

    JavaAgent 示例说明 ①、 javassist.iedis.crack.IedisCrack1和javassist.iedis.crack.IedisCrack2为使用...javaagent.sample.transformer.InjectPrintTransformer 演示了使用javaagent结合javassist匹配返回值为St

    java agent demo

    4. **打包和部署**: 将Java Agent项目打包成jar文件,并确保包含`MANIFEST.MF`清单文件,其中指定了`Premain-Class`属性,如: ``` Manifest-Version: 1.0 Premain-Class: com.example.MyAgent ``` 这个Java Agent...

    java 反编译工具 jboss-javassist

    Javassist是Java字节码操纵和分析框架,常用于动态代理、AOP(面向切面编程)以及逆向工程等场景。通过这个工具,开发者无需重新编译源代码就能对Java类进行修改和增强,这对于理解和调试已部署的软件或者创建元编程...

    java agent 使用及实现代码

    Java Agent 使用及实现代码 Java Agent 是一种可以在字节码层面对类和方法进行修改的技术,能够在不影响编译的情况下,修改字节码。本文主要讲解 Java Agent 的使用及实现代码。 什么是 Java Agent Java Agent 是...

    Java Agent实现系统数据采集

    Java Agent是一种强大的技术,它允许我们在Java应用程序运行时对其进行拦截和增强,而无需修改源代码或重新部署。这种技术在系统监控、日志记录、性能分析、安全审计等多个领域都有广泛应用。本文将深入探讨如何使用...

    java-agent学习1

    - 为了使 Java Agent 生效,需要在启动参数中指定 `-javaagent:E:\java安全\java内存马\agent-example\agent-demo\target\java-agent.jar` 2. **实现 `Test` 类** - `Test` 类中包含一个私有变量 `hello` 和一个 ...

    collection-agent:通过javaagent和javassist技术实现对java的ArrayList和HashMap的增强,避免在虚拟器一次load大量数据时导致OOM

    通过javaagent和javassist技术实现对java的ArrayList和HashMap的增强,在操作集合元素时判断集合元素个数, 当集合元素个数大于设置的上限时,抛出异常,终止此次操作,从而避免在集合元素过大导致OOM. #使用方式: ...

    借助jclasslib与javassist修改java class字节码

    ### 借助jclasslib与javassist修改Java class字节码 #### 一、引言 在软件开发过程中,有时我们可能面临一种情况:即需要对已经编译好的`.class`文件进行修改,但手中并没有对应的源代码。这种情况下,我们可以...

    美团IDEA插件实现Java应用的热部署实践

    Agent字节码增强是指在Java字节码中插入一些用于热部署的代码,以便在运行时可以实现热部署。Javassist是一个Java库,提供了字节码操作的功能,可以动态地修改Java类的字节码。Classloader是Java中的类加载器,负责...

Global site tag (gtag.js) - Google Analytics