2014-11-15 21 views
5

W NetBeans utworzyłem klasę eksportera, która eksportuje niektóre dane do pliku EXCEL za pomocą APACHE POI, który używa XMLBeans.Słoik XMLBeans nie może zostać podpisany po zaimportowaniu z klasy niestandardowej

Dodałem biblioteki APACHE POI 3.10.1, pobierając pliki binarne zip i ręcznie dodając słoiki.

Kiedy używam tej klasy wewnątrz tego samego projektu, wszystko działa poprawnie.

Następnie dodałem tę klasę do innego projektu, klikając prawym przyciskiem myszy Biblioteki -> Dodaj projekt.

Ale kiedy próbowałem to uruchomić, podczas kompilacji dostałem następujący błąd.

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 

Nie wiem, o co chodzi, ale doprowadza mnie do szału.

+0

Rozwiązałeś to? –

+0

Ledwo pamiętam ten problem, to było dawno temu, ale myślę, że skończyło się na używaniu starszej wersji APACHE POI. Mam nadzieję, że to pomoże. – chanklor

+0

Nadal występuje w najnowszej wersji UM –

Odpowiedz

13

W XMLBEANS Jira został zgłoszony błąd, który definiuje ten problem. https://issues.apache.org/jira/browse/XMLBEANS-499 i jeden z komentarzy zgłasza poprawkę. Nie próbowałem tego jeszcze, ale jestem w trakcie. Sprawdź to.

Zaktualizowano: rozwiązany. Z perspektywy czasu rezolucja jest oczywista, ale boleśnie niepotrzebna, jeśli .jar został prawidłowo stworzony. Rozpakuj (zmieniłem po prostu rozszerzenie .jar na .zip i kontynuowałem) .jar, który usunie duplikaty plików .class (w tym przypadku 8), a następnie użyj narzędzia jar, aby odtworzyć plik .jar. Polecenie brzmi: "jar cf (ścieżka) \ xmlbeans-2.6.0.jar -C (ścieżka rozpakowanego folderu)." Nie zapomnij o okresie na końcu polecenia. Następnie skopiowałem nowy plik xmlbeans-2.6.0.jar do mojego katalogu lib i wszystko jest już dobrze. Mam nadzieję, że to pomoże komuś innemu! :-)

0

Jeśli używasz maven, możesz spróbować rozpakować zależność 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>