前言
在項目中利用POI開發excel、word的導入導出功能,而POI在解析xlsx及docx兩種高版本文檔時需要依賴xmlbeans包,但weblogic容器中提供了低版本的xmlbeans,從而導致報錯:
Caused by: java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setLoadEntityBytesLimit(I)Lorg/apache/xmlbeans/XmlOptions; at org.apache.poi.POIXMLTypeLoader.<clinit>(POIXMLTypeLoader.java:50) at org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:85)
由於weblogic下還部署有其他的應用,如果升級jar包可能會導致其他應用的異常,所以我們在當前應用下放置相應的jar包並通過調整類加載優先級使程序中加載本應用下相應版本的jar包;
調整方式
再 META-INFO/weblogic-application.xm 配置
<prefer-application-packages>
<package-name>org.apache.xmlbeans.*</package-name>
</prefer-application-packages>
由於博主能力有限,文中如有存在描述不正確,歡迎指正、補充!!!