1. 程式人生 > >weblogic中優先載入應用中的jar包 prefer-application-packages

weblogic中優先載入應用中的jar包 prefer-application-packages

其他幫助連線:http://shuwen.iteye.com/blog/1124220

僅針對10.3及以上版本。 

在WEB-INF下面新增weblogic.xml檔案。

01 <?xml version="1.0" encoding="UTF-8"?>
02 <weblogic-web-app
03 xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
04 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
05 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
06 http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
07 http://xmlns.oracle.com/weblogic/weblogic-web-app
08 http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd">
09 <jsp-descriptor>
10 <working-dir>app_workingDir</working-dir>
11 </jsp-descriptor>
12 <container-descriptor>
13 <!--<prefer-web-inf-classes>true</prefer-web-inf-classes>-->
14 <prefer-application-packages>
15 <package-name>org.apache.commons.lang.*</package-name>
16 <package-name>antlr.*</package-name>
17 <
package-name>org.hibernate.*</package-name>
18 <package-name>javax.persistence.*</package-name>
19 </prefer-application-packages>
20 </container-descriptor>
21 <context-root>/app</context-root>
22 </weblogic-web-app>
其中prefer-web-inf-classes和prefer-application-packages只能二選一。 
使用此方法對hibernate jpa2.0載入時可不用修改weblogic啟動指令碼的CLASSPATH。 
注意xml檔案的xsd檔案宣告必須正確。 

我用此方法解決了在weblogic10.3.6和hibernate3.6.10的jpa jar包衝突。 
Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy 
如只設定prefer-web-inf-classes為true 也不能解決以上問題。