java.io.IOException: Invalid header signature; read 0xE011BDBFEFBDBFEF, expected 0xE11AB1A1E011CFD0

根据网上的解释,这个表示poi读取excel(97-2003)的时候头文件被损坏了,正常的方式:能打开的话,另存一下即可,实在不行直接新建一个内容一样的

本人环境:eclipse部署到tomcat,eclipse下的源码是正确的,只要发布到tomcat就是文件损坏,以前是好的

原因:使用了maven,而且为了配置profile,使用了resource,resource他会把它配置的路径下的文件过一遍,然后用pom定义的变量的值给替换掉,

excel不存在替换变量的问题,但应该会检查,估计会打开的过程中出问题了,具体没有深究,网上也是这么说的。

方案:把excel所在的目录或者excel文件设置为不让他检查,pom的配置,如下:

这样把excel的路径给排除了,或者后面一种注释的也可以

今天做jenkins的一键部署(svn,jenkins,maven)

发现上面的这段配置在一键部署的服务器上excel下载还是报标题上的错误,很纳闷呀!理论本地通过了服务器也应该是通过的,可能原因:

1、环境不一致,本地windows,一键部署是linux(centos6.4)

2、软件版本不一致,本地maven是3.25,服务器是3.3.9的

目前测试情况来看:去掉上面的exclude,加入nonFilteredFileExtensions,如下:

          <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
           </resources>
		<finalName>cotton</finalName>
		<plugins>
			<plugin>
			    <groupId>org.apache.maven.plugins</groupId>
			    <artifactId>maven-resources-plugin</artifactId>
			    <configuration>
			        <encoding>UTF-8</encoding>
			        <nonFilteredFileExtensions>
			            <nonFilteredFileExtension>xls</nonFilteredFileExtension>
			            <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
			        </nonFilteredFileExtensions>
			    </configuration>
			</plugin>
                        。。。

  目前还发现再生产环境中部署(多台机器),第一次一键部署不起作用,第二次才起,不晓得为什么,以后追一下!暂时记录

posted @ 2015-09-21 16:54  小An  阅读(21394)  评论(0编辑  收藏  举报