由於之前沒有使用過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工廠。
自此問題算事解決了,給自己一個教訓。