weblogic查看補丁版本報錯 java.lang.NoClassDefFoundError, java.lang.ClassNotFoundException

**

weblogic查看補丁版本時報錯: java.lang.NoClassDefFoundError,java.lang.ClassNotFoundException

**

問題詳情

打補丁前,先查看目前的weblogic補丁版本

[weblogic@host bsu]$./bsu.sh  -prod_dir=/home/weblogic/Oracle/Middleware/wlserver_10.3 -status=applied -verbose -view
Exception in thread "Main Thread" java.lang.NoClassDefFoundError: com/bea/plateng/patch/Patch
Caused by: java.lang.ClassNotFoundException: com.bea.plateng.patch.Patch
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: com.bea.plateng.patch.Patch. Program will exit.

排查過程

通過查看MANIFEST.MF文件發現了這麼一行:
Class-Path: …/…/modules/features/com.bea.cie.patch-client_3.3.0.0.jar
下面,我們來尋找這個jar 包。

[weblogic@host features]$ pwd
/home/weblogic/Oracle/Middleware/modules/features
[weblogic@host features]$ 
[weblogic@host features]$ ll | grep com.bea.cie.patch-client_3.3.0.0.jar
[weblogic@host features]$ 

這裏要注意的是,不同的環境,可以路徑不同,但 “modules/features” 是不變的。
同時,也發現其他weblogic服務器上存在的jar包,這臺服務器上沒有。好了,問題已經找到了,打補丁所依賴的jar包的缺失 最終導致了 java.lang.NoClassDefFoundError報錯 和 java.lang.ClassNotFoundException報錯。

解決方案

通過對比發現,不同的weblogic主機,同一個jar包,雖然名稱一樣,但是包的sha256不同。
爲安全起見,解決方案是做好備份,重裝weblogic ,哈哈。

希望拋磚引玉,大家有更好的解決方案歡迎留言!
寫於 July 27, 2019,修改於July 28, 2019

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章