描述:项目在tomcat服务器上部署时,使用POI导出Excel文件不会报错,能够正常下载,将项目部署在Weblogic服务器上后,使用POI导出Excel文件报错:
java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansi
原因:在Weblogic中,如果事先未将项目自带的依赖文件优先级设置为最高,那么Weblogic默认会先去加载其本身就有的低版本的beansxml依赖,高版本中的方法就会出现找不到的情况
解决方法:设置项目依赖文件的优先级,在项目的文件META-INF下新建一个weblogic.xml,内容如下:
<?xml version="1.0"?> <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"> <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> </weblogic-web-app>
重启Weblogic即可。