142 votes

Erreurs d'imbrication des chemins de construction d'Eclipse

Je travaille sur une simple application web JSP/Servlet/Tomcat pour ma classe. Le professeur nous a demandé d'utiliser une structure de dossiers légèrement différente de la structure par défaut des projets web dynamiques. Plutôt que d'utiliser le dossier webcontent, il veut que tout notre code source soit placé sous src/main/java et src/main/webapp.

Lorsque je lance l'application, mon fichier de bienvenue s'affiche correctement, mais lorsque j'essaie d'accéder à mes servlets, j'obtiens :

 Http 500 SEVERE: Allocate exception for servlet InitDb

java.lang.ClassNotFoundException. Je suis presque sûr qu'il s'agit d'une erreur de chemin de construction. J'ai final/src sur le chemin de construction mais je reçois l'avertissement suivant

"Cannot nest 'final/src/main/webapp/WEB-INF/classes' inside 'final/src'. To enable the    nesting exclude 'main/' from 'final/src'

enter image description here

Je l'ai dans mon assemblée de déploiement :

<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> 

Lorsque j'exclus main/, l'avertissement disparaît, mais le problème n'est pas résolu. J'apprécierais tout conseil. Je vous remercie.

345voto

acheron55 Points 713

J'ai eu le même problème même lorsque j'ai créé un nouveau projet. Je créais le projet Java dans Eclipse, puis je le mavenais, puis j'allais dans les propriétés du chemin de construction java en supprimant les éléments suivants src/ et en ajoutant src/main/java y src/test/java . Lorsque je lance la mise à jour de Maven, il y a une erreur de chemin imbriqué.
Puis j'ai finalement réalisé - parce que je n'avais pas vu cette entrée auparavant - qu'il y a un <sourceDirectory>src</sourceDirectory> dans le fichier pom écrit lorsque je le mavenise. Le problème a été résolu après l'avoir supprimé.

26voto

heez Points 735

Je voulais apporter une réponse non-mauvaise à ce fil de discussion.

Pour des raisons de contrôle de version et de structure stricte des répertoires, je n'ai pas pu suivre la réponse d'Acheron (la meilleure réponse) qui consiste à faire quelque chose de similaire à la suppression de src/ et en ajoutant src/main/java y src/test/java au chemin de construction.

Cela fait quelques semaines que je suis confronté à ce problème de chemins de construction imbriqués. La réponse au problème est suggérée dans le message d'erreur :

To enable the nesting exclude 'main/' from 'final/src'

Fixer

Dans votre chemin de construction, vous devez éditer votre fichier Inclusion and Exclusion Patterns en cliquant sur Excluded: (None) et ensuite Edit... :

  1. Allez dans le navigateur et faites un clic droit sur le projet.
  2. Chemin de construction
  3. Configurer le chemin de construction
  4. Source (onglet)

Exclusion Patterns

Vous pouvez y ajouter main/webapp/WEB-INF/classes en tant que Exclusion Pattern . Il devrait ensuite vous permettre d'ajouter main/webapp/WEB-INF/classes dans le chemin de construction en tant que dossier source séparé.

22voto

abhijeet104 Points 150

Voici une solution simple :

  1. Cliquez avec le bouton droit de la souris sur le projet >> propriétés >> chemin de construction ;
  2. Dans l'onglet Source, sélectionnez tous les dossiers source ;
  3. Les supprimer ;
  4. Clic droit sur le projet, Maven >> Mettre à jour le projet.

10voto

Sireesh Points 802

Essayez ceci :

Dans l'onglet bibliothèques :

Eclipse -> right click on project name in sidebar -> configure build path -> Libraries

Supprimez les bibliothèques de votre application web :

click on "Web App Libraries" -> click "remove"

Les rajouter :

click "Add Library" -> click to highlight "Web App Libraries" -> click "next" -> confirm your desired project is the selected option -> click "Finish"

Mise en évidence de "Web App Libraries" :

Highlighting "Web App Libraries"

4voto

Hatem Jaber Points 48

J'ai eu le même problème et la réponse correcte ci-dessus n'a pas fonctionné pour moi. Ce que j'ai fait pour résoudre le problème, c'est d'aller à Build Path->Configure Build Path et sous l'onglet source, j'ai supprimé toutes les sources (qui n'en avaient qu'une) et je les ai reconfigurées à partir de là. J'ai fini par supprimer le projet d'Eclipse et par réimporter le projet maven afin d'éliminer l'erreur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X