Exception java.lang.ClassFormatError:类文件中本机或抽象方法中的代码属性

Exception java.lang.ClassFormatError:类文件中本机或抽象方法中的代码属性,exception,javaagents,java-bytecode-asm,Exception,Javaagents,Java Bytecode Asm,我正在用asm库检测代码,并收到这样的错误。这是什么意思?有人知道怎么修吗? 请注意,我正在跳过Agent agentmain方法中的接口: if (clazz.isPrimitive() || clazz.isInterface() || clazz.isLocalClass() || clazz.isArray() || clazz.isAnonymousClass() || clazz.isMemberClass() || clazz.isPrimitive()) { contin

我正在用asm库检测代码,并收到这样的错误。这是什么意思?有人知道怎么修吗? 请注意,我正在跳过Agent agentmain方法中的接口:

if (clazz.isPrimitive() || clazz.isInterface() || clazz.isLocalClass() || clazz.isArray() || clazz.isAnonymousClass() || clazz.isMemberClass() || clazz.isPrimitive()) {
    continue;
}
错误堆栈:

java.lang.ClassFormatError: Code attribute in native or abstract methods in class file com/mysql/jdbc/ConnectionProperties
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    java.sql.DriverManager.getConnection(DriverManager.java:571)
    java.sql.DriverManager.getConnection(DriverManager.java:215)
    org.apache.jsp.welcome_jsp._jspService(welcome_jsp.java:92)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
这个问题解决了。 我跳过了代理agentmain函数中接口和抽象类的检测。但是,它不适用于在运行时加载的库。所以这个检查(若类是接口)应该在代理转换方法内部完成。我把支票移到了那里,现在可以用了

谢谢