【已解决】Caused by: java.lang.ClassNotFoundException: com.sun.istack.Pool
最近遇到一個報錯,記錄一下解決的過程:
報錯:
22-03-18.10:16:33.718 [JSF-FileRegistry-Back-Load-2-T-1] ERROR FileRegistry - com/sun/istack/Pool java.lang.NoClassDefFoundError: com/sun/istack/Poolat com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1156) ~[jaxb-impl-2.3.1.jar:2.3.1]at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:165) ~[jaxb-impl-2.3.1.jar:2.3.1]..at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65] Caused by: java.lang.ClassNotFoundException: com.sun.istack.Poolat org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) ~[catalina.jar:7.0.42]at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) ~[catalina.jar:7.0.42]... 20 common frames omitted解決辦法
Maven中增加 jaxb-impl 和 jaxb-core兩個依賴即可,此處參考點擊跳轉。如果已經有這兩個jar包,還是出現同樣的問題,可以變更一下jaxb-impl的版本號,另外jaxb-core 依賴于 istack-commons-runtime,也可以在 jaxb-core 的 pom 中找到,此處參考 點擊跳轉。
總的來說,java.lang.ClassNotFoundException,即java類找不到。這類典型異常通常是由于,沒有在依賴管理中聲明版本或者沒有引入導致,由于maven仲裁機制的存在,有的時候選取了錯誤的版本,而這個版本恰好缺少了我們所需要的某個class,就會產生該錯誤。
例如httpclient-4.4.jar升級到httpclient-4.36.jar時,類org.apache.http.conn.ssl.NoopHostnameVerifier被去掉了,如果此時我們本來需要的是4.4版本,且用到了NoopHostnameVerifier這個類,而maven仲裁時選擇了4.36,則會導致ClassNotFoundException異常。
參考
1、https://github.com/Enterprise-Content-Management/documentum-rest-client-java/issues/4
2、Jar包沖突問題及解決方案!
3、https://stackoverflow.com/questions/60389012/java-lang-noclassdeffounderror-com-sun-istack-pool
總結
以上是生活随笔為你收集整理的【已解决】Caused by: java.lang.ClassNotFoundException: com.sun.istack.Pool的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 兔子藏洞问题
- 下一篇: 从零开始学区块链之dapp开发(2)测试