2017-09-06 3 views
0

J'ai une méthode de rapport avec la génération en jett:Comment réparer les fichiers xls corrompus par maven?

try { 

     InputStream inPath = ProdutoManagedBean.class.getResourceAsStream("/template.xls"); 

     ExcelTransformer transformer = new ExcelTransformer(); 
     transformer.transform(inPath, beans); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (InvalidFormatException e) { 
     e.printStackTrace(); 
    } 

Je vais avoir un InvalidFormatException dans transformer.transfom (...):

22:44:37,803 ERROR [stderr] (default task-28) org.apache.poi.openxml4j.exceptions.InvalidFormatException: Your InputStream was neither an OLE2 stream, nor an OOXML stream 

j'ai étudié que maven causes de ces données la corruption, mais je mets les objets de filtre dans le pom.xml et il continue encore à venir corrompu:

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>${compiler-plugin.version}</version> 
       <configuration> 
        <encoding>UTF-8</encoding> 
        <nonFilteredFileExtensions> 
         <nonFilteredFileExtension>xls</nonFilteredFileExtension> 
        </nonFilteredFileExtensions> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.5</version> 
       <inherited>true</inherited> 
       <configuration> 
        <encoding>UTF-8</encoding> 
        <nonFilteredFileExtensions> 
         <nonFilteredFileExtension>xls</nonFilteredFileExtension> 
        </nonFilteredFileExtensions> 
       </configuration> 
      </plugin> 
      <plugin> 
+1

Les configurations pour le plugin maven-jar sont inutiles car ces éléments de configuration n'existent pas dans [maven-jar-plugin] (https://maven.apache.org/plugins/maven-jar-plugin/jar- mojo.html). Avez-vous vérifié que le fichier original est correct? – khmarbaise

+0

On dirait que les utilisateurs de Maven vous laissent tomber. Donc, quelques conseils de celui qui est un haineux maven explicite ;-): Vous devriez lire sur la meilleure façon de fournir des ressources dans maven. Et non, ce n'est pas les mettre dans le pot aux côtés des classes. Votre "nonFilteredFileExtension" ne fonctionnera que dans maven-resources-plugin, qui est recommandé d'utiliser. Le maven-compiler-plugin fournit seulement "exclut". –

Répondre

0

j'ai pu résoudre; Je mets cet artefact dans le pom.xml du projet qui a les composants d'infrastructure web:

<build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>3.1.0</version> 
        <inherited>true</inherited> 
        <configuration> 
         <encoding>UTF-8</encoding> 
         <nonFilteredFileExtensions> 
          <nonFilteredFileExtension>xls</nonFilteredFileExtension> 
         </nonFilteredFileExtensions> 
       </plugin> 
      </plugins> 
     </build> 

Il était probablement un problème causé par une spécificité de l'architecture technique du projet.