项目POM 文件加入一个包后build没问题,Tomcat启动失败,后台报错如下。
Failed to read candidate component class ....
IncompatibleClassChangeError: class ClassMetadataReadingVisitor has interface ClassVisitor as super class
问题原因参见文章: http://www.cnblogs.com/taven/archive/2013/04/02/2994998.html
简言之就是 spring 的 类 ClassMetadataReadingVisitor 继承了 ClassVisitor 抽象类,但是在spring-asm 包中有个同名的 ClassVisitor 接口。
问题解决:mvn dependency:tree 查看包依赖
[INFO] \- org.apache.cxf:cxf-bundle:jar:2.7.11:compile
[INFO] +- org.apache.velocity:velocity:jar:1.7:compile
[INFO] +- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] +- com.sun.xml.bind:jaxb-xjc:jar:2.1.13:compile
[INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.1.13:compile
[INFO] +- org.apache.ws.xmlschema:xmlschema-core:jar:2.1.0:compile
[INFO] +- antlr:antlr:jar:2.7.7:compile
[INFO] +- org.apache.xmlbeans:xmlbeans:jar:2.6.0:compile
[INFO] +- xml-resolver:xml-resolver:jar:1.2:compile
[INFO] +- org.apache.geronimo.specs:geronimo-jaxws_2.2_spec:jar:1.1:compile
[INFO] +- org.codehaus.woodstox:woodstox-core-asl:jar:4.2.1:compile
[INFO] +- org.codehaus.woodstox:stax2-api:jar:3.1.4:compile
[INFO] +- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.1:compile
[INFO] +- org.eclipse.jetty:jetty-server:jar:8.1.14.v20131031:compile
[INFO] +- org.eclipse.jetty:jetty-continuation:jar:8.1.14.v20131031:compile
[INFO] +- org.eclipse.jetty:jetty-http:jar:8.1.14.v20131031:compile
[INFO] +- org.eclipse.jetty:jetty-io:jar:8.1.14.v20131031:compile
[INFO] +- org.eclipse.jetty:jetty-util:jar:8.1.14.v20131031:compile
[INFO] +- org.eclipse.jetty:jetty-security:jar:8.1.14.v20131031:compile
[INFO] +- org.apache.geronimo.specs:geronimo-servlet_3.0_spec:jar:1.0:compile
[INFO] +- org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.1.1:compile
[INFO] +- org.springframework:spring-jms:jar:3.0.7.RELEASE:compile
[INFO] +- aopalliance:aopalliance:jar:1.0:compile
[INFO]
+- org.springframework:spring-asm:jar:3.0.7.RELEASE:compile
[INFO] +- org.apache.httpcomponents:httpcore-nio:jar:4.2.4:compile
[INFO] +- org.apache.httpcomponents:httpcore:jar:4.2.4:compile
[INFO] +- org.apache.httpcomponents:httpasyncclient:jar:4.0-beta3:compile
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.2.5:compile
[INFO] +- commons-codec:commons-codec:jar:1.9:compile
[INFO] +- org.apache.mina:mina-core:jar:2.0.7:compile
[INFO] +- rhino:js:jar:1.7R2:compile
[INFO] +- javax.ws.rs:javax.ws.rs-api:jar:2.0-m10:compile
[INFO] +- net.oauth.core:oauth-provider:jar:20100527:compile
[INFO] +- net.oauth.core:oauth:jar:20100527:compile
[INFO] +- net.sf.ehcache:ehcache-core:jar:2.5.1:compile
[INFO] +- org.apache.ws.security:wss4j:jar:1.6.15:compile
[INFO] +- org.apache.santuario:xmlsec:jar:1.5.6:compile
[INFO] +- org.opensaml:opensaml:jar:2.6.1:compile
[INFO] +- org.opensaml:openws:jar:1.5.1:compile
[INFO] +- org.opensaml:xmltooling:jar:1.4.1:compile
[INFO] +- joda-time:joda-time:jar:2.2:compile
[INFO] +- xalan:serializer:jar:2.7.1:runtime
[INFO] \- org.apache.neethi:neethi:jar:3.0.3:compile
可以看到对spring-asm.jar 的依赖,下面排除该依赖,重新部署, 成功运行。 over
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-bundle</artifactId>
<version>2.7.11</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-asm</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</exclusion>
</exclusions>
</dependency>
分享到:
相关推荐
2013-08-12 14:33:37.672:... Add CGLIB to your classpath.:java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class
4. **ClassWriter**:它实现了ClassVisitor接口,用于构建新的字节码。当你需要生成或修改字节码时,可以使用ClassWriter将处理后的结果输出为字节码形式。 5. **AnnotationWriter**、**FieldWriter** 和 **...
在ASM 4.0版本中,ClassVisitor由原来的接口改为了抽象类,并且与ClassAdapter合并,用于处理类的访问和修改。 ASM在解析`.class`文件时,按照类、注解、字段、方法、以及方法内部的注解等结构进行遍历,并使用相应...
`ClassReader`、`ClassVisitor`和`ClassWriter`是ASM Core API中的三大关键类。 `ClassReader`负责读取已有的 `.class` 文件,解析其内部结构,而`ClassWriter`则负责将修改后的类信息写回。`ClassVisitor`作为它们...
`ClassWriter`是基于`ClassVisitor`接口实现的,因此它包含了对类的各种元数据进行访问和处理的方法。 `ClassWriter`类中包含了一些关键字段,这些字段对应于Java类文件结构中的各个部分: 1. `version`: 这个字段...
2. **ClassReader**: 这个类用于读取已有的字节码,并且可以通过事件回调机制(如ClassVisitor)来分析字节码。 3. **MethodVisitor**: 这是用来访问和修改方法的接口,包括方法的访问标志、返回类型、参数类型、...
当我们创建一个`ClassWriter`实例时,其实就是在创建一个`ClassVisitor`的实现。 2. `ClassWriter.COMPUTE_FRAMES`: 这是一个常量,表示让ASM自动计算并插入堆栈映射帧(Stack Map Frames)。这对于JVM的动态类型...
OSGI(Open Service Gateway Initiative)框架提供了一种模块化的解决方案,允许模块独立重启,但若模块间有依赖,仍可能导致短暂的功能中断。针对这一问题,本文聚焦于实现对单一类的热部署,即在不破坏 JVM 原有...
在这个包里,你可以找到一些重要的类,如ClassReader、ClassVisitor和ClassWriter等,它们都是ASM库的核心API。 除此之外,ASM库也提供了一些其他的功能。例如,它可以生成二进制的class文件,也可以在类被加载入...
asm-3.3.1.jar是一个Java字节码操纵框架,它可以在二进制形式下动态生成stub类或者其他代理类,同时...为了实现这些功能,它定义了一些重要的类,如ClassReader、ClassVisitor和ClassWriter等,这些都位于Core API中。
5. Generating classes(生成类):此部分详细阐述如何使用ClassWriter或者ClassVisitor来生成新的类。 6. Parsing classes(解析类):说明如何使用ClassReader来解析现有类的字节码。 7. Transforming classes...
3. **类适配器(ClassAdapter)**:ASM 提供了一些预定义的适配器类,如 `ClassAdapter`,它实现了 `ClassVisitor` 接口,并提供了空的方法实现。这样你可以基于这些适配器类进行扩展,只重写你关心的方法。 4. **...
《ASM重生:深入理解Java字节码操作与ASM库应用》 在Java世界里,ASM是一个强大的字节码操控和分析框架,它允许开发者对字节码进行低...理解和掌握ASM,对于提升Java开发者的底层技能和解决问题的能力具有重要意义。
`ClassWriter`接收`ClassVisitor`的结果并生成新的字节码。 在ASM 3.3.1中,修复了一些已知的问题,提升了API的稳定性和兼容性。尽管现在ASM已经更新到了更高级别的版本,但3.3.1仍然在许多项目中被广泛使用,尤其...
3. **ClassWriter**: `ClassWriter`是`ClassVisitor`的一个实现,负责生成字节码。当你修改类的信息后,`ClassWriter`会生成新的字节码序列,然后可以被写入到.class文件中。 4. **MethodVisitor**: 类似于`...
1. **初始化ClassWriter**:ASM通过ClassWriter类来生成字节码,开发者需要配置ClassWriter以指定输出的类信息。 2. **创建ClassVisitor**:ClassVisitor是ASM的核心接口,它定义了一系列访问类结构的方法。开发者...
2. **ClassWriter**:这个类继承自ClassVisitor,它负责将处理过的类信息写入到新的字节码中。通过调用visit方法,你可以构建出一个新的类结构。 3. **ClassReader**:这个类用于读取已存在的.class文件,它可以...
2. **创建ClassVisitor**:根据需求创建一个自定义的`ClassVisitor`,用于接收`ClassReader`读取的字节码信息。 3. **修改字节码**:在`ClassVisitor`中,开发者可以重写方法,对字节码进行修改,比如插入新的方法...
- **ClassWriter**:生成字节码的工具,通过接收ClassVisitor并转换为字节数组。 - **ClassReader**:读取并解析类文件,提供给ClassVisitor访问其结构。 4. **学习资源** "ASM4使用指南.pdf"很可能是ASM的详细...
索特 最简单的独立泛音和着色器... 目前,lein 2.4.3 和 clj-native 0.9.5 发布后,导致: java.lang.IncompatibleClassChangeError: Found class clojure.asm.ClassVisitor, but interface was expected 但是“泛音”