剛剛幫同事解決了在weblogic部署webapp的問題; 最終的問題是jar包衝突;
找問題的過程就不贅述了,各類try以後,肯定了問題;
而後我就查詢了weblogic的類加載順序的問題,不一樣於tomcat,weblogic的類加載順序是:
首先加載domain/lib下的jar,而後再加載webapp/web-inf/lib下的jar
同事的項目是flex+spring,通訊框架要求spring.jar必須放在web-inf/lib下;
其實目前一個最簡單的解決方案就是刪掉domain/lib下的spring.jar,但其餘的app就很差使了;
因此問題就定位在類加載順序的問題上,只要讓weblogic的加載順序修改成先加載web-inf/lib下的jar就ok
隨後我在weblogic的文檔(http://edocs.weblogicfans.net/wls/docs92/webapp/weblogic_xml.html#wp1067857)找到了以下解決方案:
prefer-web-inf-classes
若是將 <prefer-web-inf-classes> 元素設置爲 true,則將優先加載位於 Web 應用程序的 WEB-INF 目錄中的類,而後再加載應用程序或系統類加載器中的類。默認值爲 false。控制檯中指定的值優先於手工設置的值。
最終的解決辦法:
在web-inf下建立一個weblogic.xml文件(若是沒有的話)
而後在其中增長以下信息:
<?xml version="1.0" encoding="utf-8"?>
<weblogic-web-app
xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
從新部署,ok,問題解決