maven poi

来源:互联网 发布:淘宝大码女装胖mm秋装 编辑:程序博客网 时间:2024/06/15 20:45

之前的项目中,poi版本过低,不支持excel2007的导入导出,遂升级至3.10.1,项目启动的时候却报

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [config/applicationContext.xml]; nested exception is java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory

研究后发现是jar冲突的缘故,在pom中去除对sml-apis的依赖即可。

<dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi-ooxml</artifactId>            <version>3.10.1</version>            <exclusions>          <exclusion>              <groupId>xml-apis</groupId>              <artifactId>xml-apis</artifactId>          </exclusion>         </exclusions>     </dependency>


poi 3.12版本修复了这个bug,却引出了另外一个bug,项目能正常启动,但是在执行导出操作的时候抛出
java.lang.NoClassDefFoundError: Could not initialize class org.apache.poi.openxml4j.opc.internal.marshallers.ZipPackagePropertiesMarshaller
实际上是 xxx can not cast to javax.xml.streaming.EventFactory造成的。
原因是3.10.1以后,stax-api与jdk1.6.18jar冲突。


            <groupId>org.apache.poi</groupId>            <artifactId>poi-ooxml</artifactId>            <version>3.12</version>            <exclusions>    <exclusion>              <groupId>stax</groupId>              <artifactId>stax-api</artifactId>          </exclusion>         </exclusions>     </dependency>
<pre name="code" class="html">要保证项目编译的时候要编译版本要高于6U18。

<span style="font-family: Arial, Helvetica, sans-serif;"><build>  </span>
    <plugins>          <plugin>              <groupId>org.apache.maven.plugins</groupId>              <artifactId>maven-compiler-plugin</artifactId>              <configuration>                  <source>1.7</source>                  <target>1.7</target>              </configuration>          </plugin>      </plugins>  </build>


                                             
0 0
原创粉丝点击