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的配置,如下:

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

这样把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>
。。。

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

上一篇:jar 问题 : java.io.IOException: invalid header field


下一篇:Java打包问题之一:打包出现java.io.IOException: invalid header field