Posted on 2012-07-25 17:02
沙漠中的魚 閱讀(7524)
評論(0) 編輯 收藏 所屬分類:
Java
當前開發了一個系統,在tomcat下運行正常,但是部署到weblogic下時,卻出現了java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive異常,經過查詢,原來是當前系統和weblogic類庫中都存在存類,超成包沖突的情況。如遇到此類情況,可以通過構建部署ear包,在weblogic-application.xml通過配置優先加載本項目中的包來處理。
在ear工程下的web-info文件夾下,添加兩個文件application.xml和weblogic-application.xml。
application.xml文件內容如下:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>kubpwl</display-name>
<module>
<web>
<web-uri>kubpwl.war</web-uri>
<context-root>kubpwl</context-root>
</web>
</module>
</application>
weblogic-application.xml文件內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.3/weblogic-application.xsd">
<!--weblogic-version:10.3.6-->
<wls:application-param>
<wls:param-name>webapp.encoding.default</wls:param-name>
<wls:param-value>UTF-8</wls:param-value>
</wls:application-param>
<wls:prefer-application-packages>
<wls:package-name>org.aspectj.weaver.tools.*</wls:package-name>
<wls:package-name>javax.jws.*</wls:package-name>
</wls:prefer-application-packages>
</wls:weblogic-application>
prefer-application-packages 表示優先加載項目lib下的包。