2017-04-12 129 views
0

我写了一个作业,读取基于GitHub的项目弹簧伸展Excel中的Excel文件,失败并初始化Excel的读者 - 春季批处理作业

代码波纹管:

<bean id="VignetteItemReader" class="excel.poi.PoiItemReader"> 
<property name="resource" value="Vignettes.xlsx" /> 
<property name="rowMapper"> 
    <bean class="excel.mapping.PassThroughRowMapper" /> 
</property> 

,但我面对这样的错误:org.springframework.batch.item.ItemStreamException: Failed to initialize the reader

它给了我,它的原因包括:

java.util.zip.ZipException:无效块类型 PS:xls文件红色正确,问题是当我使用扩展名时:.xlsx

有什么建议吗?

等待你的帮助!

THX

+1

提供链接到GitHub的项目,最有可能的读者不能找到用'resource'指定的文件。尝试类似'value = classpath:Vignettes.xlsx''如果该文件存在于'classpath'中。 –

+0

没有堆栈跟踪很难,但可能资源属性值错误;添加完整文件路径或类路径:\ –

+0

我想这样..错误不是由类路径引起的:/ – inarmag

回答

0

我找到了解决方案,它是有pom.xml中做了配置:我应该补充以下标签 :

<resources> 
       <resource> 
        <directory>src/main/resources</directory> 
        <filtering>true</filtering> 
        <excludes> 
         <exclude>**/*.xml</exclude> 
          <exclude>**/*.xlsx</exclude> 
          <exclude>**/*.xls</exclude> 
          <exclude>**/*.csv</exclude> 
        </excludes> 
       </resource> 
       <resource> 
        <directory>src/main/resources</directory> 
        <filtering>true</filtering> 
        <includes> 
        <include>**/*.version</include> 
        <include>**/*.properties</include> 
        <include>**/*.xml</include> 
       </includes> 
       </resource> 

       <resource> 
        <directory>src/main/resources</directory> 
        <filtering>false</filtering> 
        <includes> 
         <include>**/*.xml</include> 
          <include>**/*.xlsx</include> 
          <include>**/*.xls</include> 
          <include>**/*.csv</include> 
        </includes> 
       </resource> 
     </resources> 
     <testResources> 
       <testResource> 
        <directory>src/test/resources</directory> 
        <filtering>true</filtering> 
       </testResource> 
     </testResources>