【weblogic】org.apache.poi.POIXMLException:weblogic服务器部署web项目excle上传失效解决

问题描述:

原maven项目在tomcat下部署,上传数据使用的是excle上传,先上传excle到对应的服务器,然后服务器解析excle文件的数据存到oracle中;后由于项目需要,需要部署在weblogic的容器中,以weblogic发布web项目,导致excle上传失效,整个导入存储功能失效,

 

查看错误日志:

2018-12-14 10:23:48,101 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG com.edhic.ecif.utils.ExcelUtil[line:32] - 开始加载文件:../uploads/1544754228097潜在客户导入模版 (1).xlsx
2018-12-14 10:23:48,202 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager[line:847] - Initiating transaction rollback
2018-12-14 10:23:48,202 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager[line:281] - Rolling back JDBC transaction on Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@32e78061]
2018-12-14 10:23:48,202 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager[line:324] - Releasing JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@32e78061] after transaction
2018-12-14 10:23:48,203 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.jdbc.datasource.DataSourceUtils[line:327] - Returning JDBC Connection to DataSource
2018-12-14 10:23:48,203 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver[line:134] - Resolving exception from handler [public java.lang.Object com.edhic.ecif.controller.ImportFileController.importFile(org.springframework.web.multipart.MultipartHttpServletRequest,javax.servlet.http.HttpSession) throws java.io.IOException]: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
2018-12-14 10:23:48,204 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver[line:134] - Resolving exception from handler [public java.lang.Object com.edhic.ecif.controller.ImportFileController.importFile(org.springframework.web.multipart.MultipartHttpServletRequest,javax.servlet.http.HttpSession) throws java.io.IOException]: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
2018-12-14 10:23:48,205 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver[line:134] - Resolving exception from handler [public java.lang.Object com.edhic.ecif.controller.ImportFileController.importFile(org.springframework.web.multipart.MultipartHttpServletRequest,javax.servlet.http.HttpSession) throws java.io.IOException]: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
2018-12-14 10:23:48,205 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG com.edhic.ecif.utils.RestExceptionResolver[line:134] - Resolving exception from handler [public java.lang.Object com.edhic.ecif.controller.ImportFileController.importFile(org.springframework.web.multipart.MultipartHttpServletRequest,javax.servlet.http.HttpSession) throws java.io.IOException]: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
2018-12-14 10:23:48,211 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']ERROR com.edhic.ecif.utils.RestExceptionResolver[line:64] - 严重异常
org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
	at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:61) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]
	at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:256) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]
	at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:196) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:151) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:167) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]
	at com.edhic.ecif.utils.ExcelUtil.loadFromXlsx(ExcelUtil.java:42) ~[_wl_cls_gen.jar:na]
	at com.edhic.ecif.utils.ExcelUtil.loadFromXlsx(ExcelUtil.java:27) ~[_wl_cls_gen.jar:na]
	at com.edhic.ecif.module.importfile.service.ImportFileServiceImp.importFile(ImportFileServiceImp.java:131) ~[_wl_cls_gen.jar:na]
	at com.edhic.ecif.module.importfile.service.ImportFileServiceImp$$FastClassBySpringCGLIB$$44887cd7.invoke(<generated>) ~[spring-core-4.0.7.RELEASE.jar:na]
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708) ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) ~[spring-tx-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) ~[spring-tx-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) ~[spring-tx-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644) ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at com.edhic.ecif.module.importfile.service.ImportFileServiceImp$$EnhancerBySpringCGLIB$$22f9ccab.importFile(<generated>) ~[spring-core-4.0.7.RELEASE.jar:na]
	at com.edhic.ecif.controller.ImportFileController.importFile(ImportFileController.java:265) ~[_wl_cls_gen.jar:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_51]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_51]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_51]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_51]
	at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) ~[spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) ~[spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) ~[spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) ~[spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) ~[spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) ~[spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) [spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) [spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) [spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863) [spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [javax.servlet_1.0.0.0_2-5.jar:2.5]
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) [spring-webmvc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [javax.servlet_1.0.0.0_2-5.jar:2.5]
	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) [weblogic.jar:10.3.6.0]
	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) [weblogic.jar:10.3.6.0]
	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) [weblogic.jar:10.3.6.0]
	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) [weblogic.jar:10.3.6.0]
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG27919965_10360180717.jar:10.3.6.0]
	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123) [druid-1.0.11.jar:1.0.11]
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG27919965_10360180717.jar:10.3.6.0]
	at com.edhic.ecif.filter.LoginFilter.doFilter(LoginFilter.java:74) [_wl_cls_gen.jar:na]
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) [spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) [spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG27919965_10360180717.jar:10.3.6.0]
	at com.edhic.ecif.utils.LoggerUtil.doFilterInternal(LoggerUtil.java:36) [_wl_cls_gen.jar:na]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG27919965_10360180717.jar:10.3.6.0]
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) [spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG27919965_10360180717.jar:10.3.6.0]
	at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) [weblogic.jar:10.3.6.0]
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) [BUG27919965_10360180717.jar:10.3.6.0]
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748) [BUG27919965_10360180717.jar:10.3.6.0]
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714) [BUG27919965_10360180717.jar:10.3.6.0]
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) [com.bea.core.weblogic.security.identity_1.2.0.0.jar:1.2.0.0]
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) [com.bea.core.weblogic.security.wls_1.0.0.0_6-2-0-0.jar:6.2.0.0]
	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283) [BUG27919965_10360180717.jar:10.3.6.0]
	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182) [BUG27919965_10360180717.jar:10.3.6.0]
	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1499) [BUG27919965_10360180717.jar:10.3.6.0]
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263) [BUG27919965_10360180717.jar:1.11.0.0]
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) [BUG27919965_10360180717.jar:1.11.0.0]
Caused by: java.lang.reflect.InvocationTargetException: null
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_51]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_51]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_51]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[na:1.8.0_51]
	at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:59) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]
	... 63 common frames omitted
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) previously initiated loading for a different type with name "javax/xml/namespace/QName"
	at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_51]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:760) ~[na:1.8.0_51]
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_51]
	at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343) ~[com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
	at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302) ~[com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
	at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270) ~[com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
	at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64) ~[com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
	at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:49) ~[com.bea.core.utils.classloaders_2.0.0.0.jar:2.0.0.0]
	at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_51]
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_51]
	at java.lang.Class.privateGetMethodRecursive(Class.java:3048) ~[na:1.8.0_51]
	at java.lang.Class.getMethod0(Class.java:3018) ~[na:1.8.0_51]
	at java.lang.Class.getMethod(Class.java:1784) ~[na:1.8.0_51]
	at org.apache.xmlbeans.XmlBeans.buildMethod(XmlBeans.java:174) ~[xmlbeans-2.3.0.jar:2.3.0-r540734]
	at org.apache.xmlbeans.XmlBeans.buildNoArgMethod(XmlBeans.java:190) ~[xmlbeans-2.3.0.jar:2.3.0-r540734]
	at org.apache.xmlbeans.XmlBeans.buildGetContextTypeLoaderMethod(XmlBeans.java:200) ~[xmlbeans-2.3.0.jar:2.3.0-r540734]
	at org.apache.xmlbeans.XmlBeans.<clinit>(XmlBeans.java:126) ~[xmlbeans-2.3.0.jar:2.3.0-r540734]
	at org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument$Factory.parse(Unknown Source) ~[ooxml-schemas-1.0.jar:na]
	at org.apache.poi.xssf.model.StylesTable.readFrom(StylesTable.java:102) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]
	at org.apache.poi.xssf.model.StylesTable.<init>(StylesTable.java:91) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]
	... 68 common frames omitted
2018-12-14 10:23:48,216 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.web.servlet.DispatcherServlet[line:1012] - Null ModelAndView returned to DispatcherServlet with name 'springmvc': assuming HandlerAdapter completed request handling
2018-12-14 10:23:48,216 [10.0.44.60][[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)']DEBUG org.springframework.web.servlet.DispatcherServlet[line:991] - Successfully completed request

由第一句可以看出来:

org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
	at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:61) ~[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]

[poi-ooxml-3.5-FINAL.jar:3.5-FINAL-20090928]说明是这个jar冲突,一般第一句就会指出那个jar冲突

是jar包冲突,需要解决jar包冲突,因为weblogic加载jar包的时候,首先加载自己的jar,然后才加载maven中pom.xml的jar包,这样就导致了jar冲突,

解决方式:取消掉maven项目中pom.xml的jar包依赖

步骤:

1.打开pom.xml,选择Dependency Hierarchy模式

2.找到对应的冲突jia包

3.右键点击,选择Exclude Maven Artifact...

4.现在就解决了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值