最終解決方案:
1、通過檢視錯誤日誌或者錯誤提示,確定問題出現的類,比如 *.httpservletrequest.*: ***x,那麼httpservletrequest可能就是導致問題出現的衝突類。
2、查詢所有包含httpservletrequest的jar包:
./findclass.sh ./lib httpservletrequest
3、如果有多個路徑,多次查詢,分析查詢出來的jar包哪個可能是不需要的,通過刪除測試來確定是否解決問題。
findclass.h, 如下:
#!/bin/sh
find_dir=$1
find_key=$2
jars=`find $find_dir -name '*.jar'`
for jar in $jars
do ret=`jar tvf $jar | grep $find_key`
if [ "$?" = "0" ]; then
echo -e "\e[1;34m$\e[0m: \n\e[2;34m$\e[0m"
fidone
wars=`find $find_dir -name '*.war'`
for war in $wars
do ret=`jar tvf $war | grep $find_key`
if [ "$?" = "0" ]; then
echo -e "\e[1;34m$\e[0m: \n\e[2;34m$\e[0m"
fidone
WAS遇到jar包衝突問題
最近,保理業務專案組發現應用程式的jsf.jar與was自帶庫的jar重名。問題提示找不到指定的類。詢問了ibm諮詢,建議不要將was庫下的jar直接刪除,調整was中類載入器的順序。和專案組交涉後,調整了子父類呼叫的先後順序,但報另外的錯誤。看到一篇文章 詳細介紹jar包衝突問題,發現jar包衝突...
jar包公升級,jar包衝突
事件 需要將clientlibrary 1.0.jar公升級為clientlibrary 1.1.jar,對jar包版本進行公升級 檢查原因 檢查備份系統可正常訪問,公升級jar包後出現同樣問題,確定jar的問題,getbean name 引用的spring.jar中的org.springframe...
Jar 包衝突的解決
1.導致jar包衝突的原因 我們在發布應用的時候,有時能正常啟動,有時卻報nosuchmehodexception nosuchfieldexception classnotfoundexception或者nosuchmehoderror noclassdeffounderror,而發布用的war包...