Javassist java.lang.NoClassDefFoundError

时间:2017-03-17 10:16:21

标签: java instrumentation javassist

我想检测一个库方法来调用我在javassist agent中的一个Class。

让我说我有一个班级:

Class A {

    void display() {
        System.out.println("Inside A.dipslay()");
    }
}

然后当我调用时:

method.insertAfter("packageName.A.display()");

它抛出异常:

Exception in thread "main" java.lang.NoClassDefFoundError: packageName/A
    at java.net.HttpURLConnection.setRequestMethod(libraryClass)
    at sun.net.www.protocol.http.HttpURLConnection.setRequestMethod(libraryClass)
    at com.avekshaa.app.SecurityFilter.sendGet(Class where i call the Library Class)
    at com.avekshaa.app.SecurityFilter.main(Class where i call the Library Class)

当我只是通过名字来称呼它时:

method.insertAfter("A.display()");

然后它给了一个没有找到这样的类Exception。

1 个答案:

答案 0 :(得分:2)

我通过在javassist清单文件中添加jars路径解决了这个问题。 Reffer - e.164