zhangxiaocc 2019-12-15
在项目中利用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>