新版API上线后,发现LOG文件没有正常输出。查看Tomcat的Log文件发现如下的错误信息

May ,  :: AM com.sun.xml.ws.server.sei.EndpointMethodHandler invoke
SEVERE: Found class ch.qos.logback.core.spi.CyclicBufferTracker, but interface was expected
java.lang.IncompatibleClassChangeError: Found class ch.qos.logback.core.spi.CyclicBufferTracker, but interface was expected

从字面含义分析,虚拟机期望使用的是一个Interface型的CyclicBufferTracker,实际上Load进来的是一个Class型的。这种问题一般是由于Compile和Runtime使用的JAR包版本不一致导致的。而这种版本不一致,一般是由于Maven的包依赖冲突引起。

ch.qos.logback.core.spi.CyclicBufferTracker是logback-core中的一个类,通过Eclipse的Dependency Hierarchy工具,对pom.xml中的包依赖关系,使用logback-core关键字进行Filter:

果然发现某一个引用的依赖包中,依赖了1.0.3版本的logback-core,和本工程所依赖的1.1.2版本,产生了冲突。

根据项目需要,调整pom文件选定所需要的JAR版本,解决包依赖冲突后,即可解决java.lang.IncompatibleClassChangeError问题。

Maven的包依赖冲突可引发java.lang.IncompatibleClassChangeError错误的更多相关文章

  1. Java-idea-常用技巧-转maven,解决包依赖冲突

    1.Intellij IDEA如何将普通工程转换成maven工程 项目上右键 Add Framework Support,选择maven 2.Intellij IDEA 自动生成 serialVers ...

  2. maven导入dom4j以及jaxen.jar报java.lang.UnsupportedOperationException:错误

    <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> & ...

  3. java.lang.IncompatibleClassChangeError:可以考虑是否是jar包冲突

    一.背景:启动tomcat的时候,报错: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.cla ...

  4. 利用mvn/maven如何检查依赖冲突,并解决依赖冲突

    mvn/maven如何检查依赖冲突,并解决依赖冲突 如图,点击图示位置,就可以把整个项目的依赖关系展示出来 在图里选中一个artifact,则所有依赖该artifact的地方都会一起连带出来突出显示, ...

  5. maven web 项目中启动报错 Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

    主要原因是maven项目里面的jar包吗,没有导入到项目中 maven web 项目中启动报错 Java.lang.ClassNotFoundException: org.springframewor ...

  6. Jmeter--thrift接口压测,调用jar包失败报错:java.lang.NoSuchMethodError:

    调用thrift接口压测的jar包,出现了错误:java.lang.NoSuchMethodError: 错误可能的原因: 有这个类,该类真的没有这个方法 有这个类,而且有好几个,他们之间发生了冲突 ...

  7. 部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener【转】

    部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi ...

  8. java.lang.IncompatibleClassChangeError: Implementing class的解决办法,折腾了一天总算解决了

    一,问题产生背景 git更新代码重启服务器后,问题就莫名奇妙的产生了,一看报错信息,基本看不懂,然后上百度去查,基本都是说jar包冲突,于是把矛头指向maven 二,问题的解决过程 既然确定了是mav ...

  9. [ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected

    1:出现此种错误应该是jar版本包冲突了,启动hive的时候,由于hive依赖hadoop,启动hive,会将hadoop的配置以及jar包等等导入到hive中,导致jar包版本冲突,下面贴一下错误, ...

随机推荐

  1. Oracle 使用SqlPlus管理

    Oracle 使用SqlPlus 安装,一键安装,很简单.安装过程,一定要记住密码 一.登陆sqlplus 连接本地服务器,可以直接,打开cmd: 可以直接不用登陆,如果登陆需要输入用户名.密码. s ...

  2. [转]面向过程的分析(POA),和面向对象的分析(OOA)

    欢迎转载本文,转载地址: http://www.juliantec.info/articles/basic-concept/poa-and-ooa.html 软件开发方法论概述 在60年代的软件开发行 ...

  3. bzoj1091: [SCOI2003]切割多边形

    Description 有一个凸p边形(p<=8),我们希望通过切割得到它.一开始的时候,你有一个n*m的矩形,即它的四角的坐标分别为(0,0), (0,m), (n,0), (n,m).每次你 ...

  4. Python不完全入门指南

    适用范围: 有一定编程基础,想快速入门python的人群 说明: 使用jupyter notebook编写,可以使用nbviewer网站进行查看. Python不完全入门指南 项目放在github上, ...

  5. if、if elif判断

    1.if.py #coding=utf-8 user = 'alex' passwd = 'alex3714' username = input('username:') password = inp ...

  6. 关于使用TP-Link桥接小米路由器

    家里因为有个小卧室,小卧室的写字台上面放了一台台式电脑,而我又不想用台式电脑牵一条长线到客厅的网口或者路由器上面,因为太麻烦,所以我使用了TPLink的无线USB插在了我的主机USB上,略去TPLIN ...

  7. STL中list和vector在添加元素时push_back会调用拷贝构造函数

    #include <iostream> #include <list> #include <vector> #include <cstring> usi ...

  8. inteview que2

    1.spring的缓存,mybatis缓存a.基于注解的方式 三种注解b.mybatis分为一级session和二级缓存mapperc.采用LRU算法(近期最少使用) http://www.iteye ...

  9. Windows下Apache配置域名

    1.打开httpd.conf 找到“Include conf/extra/httpd-vhosts.conf”这一行,取消前面的#号注释并保存 2.修改httpd-vhosts.conf文件 进入ap ...

  10. QT总结第3篇:如何在QT中添加.lib,.dll还有.h文件

    因为我在工作的过程中,使用的是第三方提供的库,但是如何将这些库添加到QT的工程中,是个问题,让我恼火了很久,怎么弄都是错的. 下面,我会对这个问题,进行叙述,希望其他人第一次遇到这种问题的时候,可以轻 ...