Comment éviter java.lang.NoSuchMethodError: org.apache.poi.util.IOUtils.copy (Ljava / io / InputStream; Ljava / io / OutputStream;) dans Apache POI
J'ai un code pour ajouter un filigrane existant .fichier doc.
Voici le code que j'ai essayé jusqu'à présent
public static void main(String[] args)
{
try
{
XWPFDocument xDoc = new XWPFDocument(new FileInputStream("test.doc"));
XWPFHeaderFooterPolicy xFooter = new XWPFHeaderFooterPolicy(xDoc);
xFooter.createWatermark("My Watermark");
}
catch(Exception e) {
e.printStackTrace();
}
}
La suivante est ce que j'ai
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.util.IOUtils.copy(Ljava/io/InputStream;Ljava/io/OutputStream;)V
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:50)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:71)
at com.avi.Test.ReadDoc.main(Watermark.java:38)
source d'informationauteur Avinash
Vous devez vous connecter pour publier un commentaire.
J'ai eu cette erreur aujourd'hui:
"de java.lang.NoSuchMethodError:org.apache.pi.util.POILogger.journal(I[Ljava/lang/Object;)V]"
Il est différent de votre erreur, mais tout à fait similaire. Pour info, j'utilise maven pour gérer les pots. Après quelques expériences, j'ai trouvé la racine est le cas de la poi.jar et poi-ooxml.jar'ne sont pas cohérentes.
Cette configuration vous obtenez un message d'erreur:
J'ai changé la version de poi.jar de 3.12 pour 3.13
bingo, le problème est résolu. J'espère que cela va aider quelqu'un qui a couru dans ce genre d'Exception.
Voir le Apache POI entrée de la FAQ à ce sujet. Ce qui a presque certainement arrivé, c'est que vous avez ajouté une nouvelle copie de POI pour votre classpath, mais une ancienne version était déjà là (à partir d'une version antérieure du besoin, le cadre, etc), et Java est maintenant confus au sujet de laquelle utiliser.
Tout d'abord, vous aurez envie d'utiliser un bout de code comme celui-ci de travailler où PI est à venir à partir de:
L'utiliser pour identifier le plus vieux pot(s) et les supprimer.
Ensuite, utilisez le PI les Composants de la Page de travailler sur ce Bocaux vous avez besoin d'utiliser, ainsi que leurs dépendances. Enfin, ajouter les derniers pots à votre classpath, et vous serez bon d'aller!
Vous avez presque certainement avoir une ancienne version de POI sur votre classpath.
Voir L'Apache POI FAQ
Aller ici:
http://poi.apache.org/download.html
télécharger le tar.gz -> extraire et ajouter à la construction de chemin de classe tous les pots.
J'ai eu les mêmes problèmes, comme vous,la solution est nécessaire pour importer tous les fichiers jar pour exécuter votre programme.Ces sont obligatoires pour l'exécution de votre projet
Dès le début, poi-ooxml et poi version doit être identique.