類找不到異常 Caused by: java.lang.NoClassDefFoundError


  錯誤原因:在部署應用的時候,服務器報錯,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>
View Code

  然后引入org.quartz-scheduler:quartz即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM