elastic-job开源框架使用中遇到的 架包冲突错误

最近在运行部门一个新的框架。该框架是用maven管理jar包的聚合工程。


在进行运行elastic-job相关的一个子项目时,报了如下的错误。

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.dangdang.ddframe.job.
spring.schedule.SpringJobScheduler#0': Invocation of init method failed; nested exception is java.lang.IncompatibleClassChangeError: Impleme
nting class
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455
)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:105)
	at com.asiainfo.cboss.biz.esjob.JobLauncher.main(JobLauncherhttp://blog.csdn.net/guanglihuan/article/details/50512855.java:29)



由错误信息可以知道,错误由类com.dangdang.ddframe.job.spring.schedule.SpringJobScheduler引起。

并且错误指出了exception is java.lang.IncompatibleClassChangeError,这个错误是由于不兼容引起的。网上查找这个错误,多由于jar的冲突,或者版本不对引起。


因为是开源框架,很容易调试找到该框架报错的点在SpringJobScheduler的父类JobScheduler中的如下语句。

 JobDetail jobDetail = JobBuilder.newJob(LiteJob.class).withIdentity(jobExecutor.getJobName()).build();
在JobBuilder.newJob() 这个函数调用中引起了错误。JobBuilder这个类是quartz   jar包中的类。所以初步判断是这个jar包冲突引起的。

寻找到这个jar包后,发现maven本地库引用了2.2.1和1.6.3版本。但是1.6.3版本在本地的pom文件中不存在,后发现是在该子项目依赖的另一个子项目的pom文件中引入了这个jar包。

解决方法:

暂时删去了pom文件中低版本的quartz 包。没有冲突错误出现。


这个链接中,介绍了使用maven命令,查看依赖树。可以快速定位jar包在那些项目pom文件中。

http://blog.csdn.net/guanglihuan/article/details/50512855


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值