springboot
使用JAX
動態調用WebService
服務端時,開發環境在IDEA
測試沒有問題,但是打包jar包
部署到服務器時卻報錯,如下圖:
提取重點:
java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC
ClassNotFoundException
這種錯誤一般是需要的類庫沒有在類路徑classpath
里面,或者是相同的類因為不同版本的原因出現至少兩個,而系統不知道選擇哪一個。
網上關於這個問題有很多解決方案,實測大部分都不行,可能解決了這個之后又會有蹦出另一個錯誤。
出現這個錯誤的原因是服務器上jre
的lib
目錄沒有tools.jar
,所以我的解決方案就是將jre
同級目錄jdk
中lib
目錄下的tools.jar
復制粘貼到jre
的lib
目錄下,然后重啟服務器在進行測試,問題就解決了。
實際上一開始我直接把jdk
中lib
目錄下的tools.jar
復制粘貼到jre
的lib
目錄后進行測試,仍然報錯,於是我卸載了jdk
,卸載之后要求重啟服務器,我就重啟了,然后重裝了jdk
,不復制粘貼tools.jar
的情況下仍然不行,復制粘貼之后就可以了,所以我也不知道是不是重啟服務器起到關鍵作用。