博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring SchedulerFactoryBean 没有创建 Scheduler的实现类bea
阅读量:5906 次
发布时间:2019-06-19

本文共 959 字,大约阅读时间需要 3 分钟。

hot3.png

我遇到 一个棘手的问题 :

两台服务器,JDK环境都是 1.7.79,都是采用jetty发布,项目中都采用了spring的quartz FactoryBean ,生成Scheduler,结果在内网的那台服务器上能够正常发布,一转到阿里的服务器环境,就出现了异常如下:ERROR context.ContextLoader - Context initialization failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scheduleJobInit': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.quartz.Scheduler.getTrigger(Lorg/quartz/TriggerKey;)Lorg/quartz/Trigger; 

 

按照spring容器初始化的机制 ,是不可能出现注入的Bean为空的,除非那个Bean在创建时已经出现了问题。若出现了问题 则不会在这个位置抛出异常了,而是在创建那个需要注入的bean时就已经出现异常了。

 

刚刚终于找到原因了,主原因是因为包冲突了 quartz-2.2.1.jar和quartz-1.5.1.jar两个包都在lib下。虽然我在开发环境中已经在pom.xml中删除了1.5的dependence配置,但是在jenkins的workspace中仍然还有这个jar,所以在打包的时候打进去了。  看来有时候jenkins中使用mvn同时执行clean 和packeage命令也不一定靠谱吧。得去手动清理掉workspace下的target文件夹内容,才是最安全的。

 

就是包冲突问题。那么为什么Spring没有抛出异常呢。稍后抽时间再对org.springframework.scheduling配置了日志输出看目的地吧,到目前为止就已经将上面的问题解决了。多个quartz包。

乱了乱了~~~~

 

转载于:https://my.oschina.net/u/2553994/blog/606904

你可能感兴趣的文章
Java基础之编程语法(一)
查看>>
使用VUE脚手架搭建的项目,图片PX一样,实际效果差别甚大
查看>>
输入优化(输入外挂)
查看>>
用css做半透明遮罩层
查看>>
《收藏》对servlet原理讲解特别详细
查看>>
单项链表的建立(1)
查看>>
2012 蓝桥杯【初赛试题】卖鸡蛋
查看>>
React.js 常用技术要点
查看>>
Comet之简单方案—Ajax Push Engine(APE)
查看>>
vue-router
查看>>
Android: EditText中singleLine过期替代方法
查看>>
oracle分页 排序
查看>>
ES10(2019)新特性
查看>>
金额的计算
查看>>
Mysql数据库表关于几个int类型的字符长度
查看>>
F - DFS枚举 CSU - 2087: Tragedy Words
查看>>
html 1.0 鼠标放上去会亮 onmouseover onmouseout 以及this标签的使用
查看>>
Oracle
查看>>
PHP面试题总结
查看>>
机器学习小记——KNN(K近邻) ^_^ (一)
查看>>