2014-11-15 13 views
5

In NetBeans ho creato una classe Exporter che esporta alcuni dati in un file EXCEL utilizzando POI APACHE, che utilizza XMLBeans.Impossibile firmare il contenitore XMLBeans quando importato dalla classe personalizzata

Ho aggiunto le librerie APACHE POI 3.10.1 scaricando i binari zip e aggiungendo manualmente i giare.

Quando utilizzo questa classe all'interno dello stesso progetto, tutto viene eseguito correttamente.

Quindi ho aggiunto questa classe a un altro progetto, facendo clic con il pulsante destro del mouse su Librerie -> Aggiungi progetto.

Ma quando ho provato a eseguire questo ho ottenuto il seguente errore durante la compilazione.

Signing JAR: C:\Users\c\p\dist\lib\xmlbeans-2.6.0.jar to C:\Users\c\p\dist\lib\xmlbeans-2.6.0.jar as nb-jfx 
jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: org/apache/xmlbeans/xml/stream/Location.class 
Enter Passphrase for keystore: Enter key password for nb-jfx: 
C:\Users\c\p\nbproject\jfx-impl.xml:1465: The following error occurred while executing this line: 
C:\Users\c\p\nbproject\jfx-impl.xml:2968: The following error occurred while executing this line: 
C:\Users\c\p\nbproject\jfx-impl.xml:1940: jarsigner returned: 1 

Non so di cosa potrebbe trattarsi, ma mi sta facendo impazzire.

+0

Hai risolto questo? –

+0

Ora ricordo a malapena questo problema, è stato tanto tempo fa, ma penso di aver finito con l'utilizzo di una versione precedente di APACHE POI. Spero che aiuti. – chanklor

+0

Si verifica ancora nella versione più recente dei POI –

risposta

13

C'è un bug aperto in XMLBEANS Jira che definisce questo problema. https://issues.apache.org/jira/browse/XMLBEANS-499 e uno dei commenti riporta una correzione. Non ho ancora provato, ma sono in procinto di farlo. Controlla.

Aggiornamento: risolto. Con il senno di poi la risoluzione è ovvia ma dolorosamente inutile se il .jar fosse stato creato correttamente. Unzip (ho semplicemente cambiato l'estensione .jar in .zip e ho proceduto) .jar che rimuoverà i file duplicati .class (8 in questo caso) quindi utilizzare lo strumento jar per ricreare il file .jar. Il comando è: "jar cf (path) \ xmlbeans-2.6.0.jar -C (percorso della cartella decompressa)." Non dimenticare il periodo alla fine del comando. Quindi ho copiato il nuovo xmlbeans-2.6.0.jar nella mia directory lib e ora tutto funziona bene. Spero che questo aiuti qualcun altro! :-)

0

Se si utilizza Maven, è possibile provare a decomprimere la dipendenza xmlbeans.

<executions> 
<execution> 
    <id>unpack-dependencies</id> 
    <phase>package</phase> 
    <goals> 
     <goal>unpack</goal> 
    </goals> 
    <configuration> 
     <artifactItems> 
      <artifactItem> 
       <groupId>org.apache.xmlbeans</groupId> 
       <artifactId>xmlbeans</artifactId> 
       <version>2.6.0</version> 
       <type>jar</type> 
       <overWrite>true</overWrite> 
       <outputDirectory>${project.build.directory}/classes</outputDirectory> 
       <excludes>**/*test.class</excludes> 
      </artifactItem> 
     </artifactItems> 
    </configuration> 
</execution> 
</executions> 
Problemi correlati