Dans un projet Eclipse maven utilisant spring web mvc, l'erreur suivante s'affiche dans l'onglet Marqueurs:
Archive for required library: 'D:/mypath/.m2/repository/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar' in project 'DocumentManager' cannot be read or is not a valid Zip file
J'ai vérifié, et le fichier jar est en fait présent dans l'URL indiquée. J'ai même copié une sauvegarde du fichier jar pour écraser le fichier jar à cet emplacement, mais cela ne permet pas d'éliminer l'erreur non plus. J'ai forcé Maven à mettre à jour, ce qui n'a pas résolu le problème. J'ai également redémarré Eclipse sans aucun effet.
À un moment donné, jta-1.0.1B.jar était jta-1.0.1B.jar.LatestUpdate, j'ai donc abrégé le nom en jta-1.0.1B.jar
Dans pom.xml, l'emplacement du message d'erreur est la ligne 2, qui se lit comme suit:
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
Lorsque je télécharge jta-1.0.1B.jar manuellement à partir de this url , l'erreur contenue dans pom.xml disparaît mais est remplacée par de nouvelles erreurs dans les fichiers de classe .Java indiquant que 5 méthodes de la classe Document ne sont pas valides.
J'ai lu ceci et ceci , mais je n'utilise pas struts, j'inclus déjà 3.3.2.ga d'hibernate et je n'ai pas de balise de référentiel dans pom.xml (qui this dit n’a même pas résolu le problème de toute façon), donc je ne pense pas que ce soit un doublon.
Quelqu'un peut-il suggérer un moyen de résoudre ce problème? Si j'ai besoin d'une balise de référentiel, où puis-je la mettre? Et quoi d'autre puis-je changer pour s'adapter à son ajout?
Pour ceux qui sont curieux, mon fichier pom.xml est inclus à titre de référence comme suit:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<description></description>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.1</version>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.3.2.GA</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-Java</artifactId>
<version>5.1.10</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>20030825.184428</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3</version>
</dependency>
<!-- dependency to fix JSPServletException -->
<dependency>
<groupId>org.Apache.Tomcat</groupId>
<artifactId>jsp-api</artifactId>
<version>6.0.32</version>
<scope>provided</scope>
</dependency>
</dependencies>
<properties>
<org.springframework.version>3.2.4.RELEASE</org.springframework.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<groupId>DocumentManager</groupId>
<artifactId>DocumentManager</artifactId>
</project>
Pour résoudre de tels problèmes, laissez Maven télécharger à nouveau les fichiers:
D:/mypath/.m2/repository/javax/transaction/jta
-U
pour qu'il tente à nouveau les téléchargements interrompus.Cela devrait essayer de télécharger le fichier à nouveau et nettoyer tout "résidu" dans votre référentiel local.
Si Eclipse se plaint toujours que le fichier JAR est corrompu:
Si le fichier JAR est corrompu, supprimez le dossier à nouveau et exécutez Maven à nouveau. Notez les URL utilisées par Maven pour télécharger l'archive et contactez l'administrateur de ce site.
Vous pouvez accéder manuellement au référentiel spécifié dans la console d’erreur , C’est-à-dire Archive for required library: '**D:/mypath/.m2/repository/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar**' in project 'DocumentManager' cannot be read or is not a valid Zip file
.
Supprimer le JAR mentionné
Allez sur Eclipse, cliquez avec le bouton droit de la souris sur le projet et sélectionnez Exécuter en tant que-> maven-install. Il téléchargera le fichier JAR de droite.
Le problème avec moi a été corrigé en allant à Build Path-> Configure Build Path-> Libraries-> Remove the jta lib
qui porte une petite croix.
J'ai réussi à construire mon projet mais cette erreur s'est produite même après le projet Refresh/Project Clean.
Vous devez exclure JTA dans votre dépendance Hibernate.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.3.ga</version>
<exclusions>
<exclusion>
<artifactId>javax.transaction</artifactId>
<groupId>jta</groupId>
</exclusion>
</exclusions>
</dependency>
Après cela, ajoutez la dépendance jta.
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
Essayé avec 1.5.5 Release jar et cela a fonctionné pour moi
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.5.RELEASE</version>
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/1.5.5.RELEASE
Pour résoudre ce problème simplement.
La raison en est l'information de cache, alors actualisez simplement les informations.
Le référentiel central maven ne contient pas de fichier jar pour le groupId/artifactId donné uniquement/ pom.xml .
Vous utilisez Spring 3.2, je vous suggère donc simplement de mettre à niveau hibernate vers la version la plus récente (4.2.6.Final), qui devrait comporter une référence à jta 1.1. Ou tout simplement inclure la version 1.1 dans votre pom qui a un pot dans Maven Central.