錯誤原因:在部署應用的時候,服務器報錯,Caused by: java.lang.ClassNotFoundException: org.quartz.impl.JobDetailImpl,某個類找不到,找到對應的包發現明明某個jar已經引進去了,在仔細一看發現有三個類似的jar, com.alibaba.external:opensymphony.quartz,opensymphony:quartz,org.quartz-scheduler:quartz。實際上我希望的包,是org.quartz-scheduler:quartz,里面有我希望的org.quartz.impl.JobDetailImpl類,但是發現一個問題opensymphony.quartz,opensymphony:quartz里面也有org.quartz.impl包但是沒有JobDetailImpl類,但是JVM在加載類的時候並沒有指定用哪個jar,比如加載到opensymphony:quartz的org.quartz.impl包,但是沒有發現JobDetailImpl,然后就報錯了。
解決方法:用mvn dependency:tree 獲取依賴樹,找到哪些包間接引用了,com.alibaba.external:opensymphony.quartz,opensymphony:quartz排除

<exclusions> <exclusion> <groupId>com.alibaba.external</groupId> <artifactId>opensymphony.quartz</artifactId> </exclusion> <exclusion> <groupId>opensymphony</groupId> <artifactId>quartz</artifactId> </exclusion> </exclusions>
然后引入org.quartz-scheduler:quartz即可。