由于之前没有使用过XxlJob,所以在和同事咨询的情况下,直接开始了撸码操作。可是这个时候神奇的事情发生了。同事给的demo是基于XxlJob 1.9.1版本的demo,但是在我自己的项目,一直报jetty的class 版本是55和,jdk要求的class版本52对应不上。而我们知道,我是绝对不会升级jdk版本的。在尝试了各种jetty版本无效的情况下,果断更换了XxlJob为最新的版本2.1.2。点击-运行-完美通过。这个时候我美滋滋的以为将会毫无问题的时候,突然显示了一行红字:Application run failed!
我的内心是崩溃的。静下心来,源码调试,这个时候才发现。发现在注册JobHandler时候注册了两遍。导致抛出了Caused by: java.lang.RuntimeException: xxl-job jobhandler[*****] naming conflicts.的异常。
那么肯定是在有多个bean 生成了JobHandler对象,导致在获取bean并注册 JobHanlder时候多次注册。最终,在自定义的BeanConfig找到了自己为了方便测试,而写的bean工厂。
自此问题算事解决了,给自己一个教训。