61 votes

Eclipse "ne trouve pas le descripteur de bibliothèque de balises"

J'ai un projet Java EE qui créent de l'amende avec Ant, déploie parfaitement à JBoss, et fonctionne sans aucun problème. Ce projet comprend quelques bibliothèques de balises personnalisées, qui sont aussi de travail sans aucune difficulté.

Le problème est avec l'IDE Eclipse (Ganymède): dans chaque fichier JSP qui utilise nos étiquettes personnalisées, les JSP de l'analyseur drapeaux de la taglib à la ligne avec une erreur "Impossible de trouver la bibliothèque de balises descripteur (exemple).tld"

Cela provoque également chaque utilisation de l'onglet de la bibliothèque pour être considérée comme une erreur, et depuis l'IDE n'ont pas de définition, il ne peut pas vérifier les paramètres de tags, etc.
Notre perfection de travail des fichiers JSP sont une mer de rouge les erreurs, et mes yeux commencent à brûler.

Comment puis-je simplement dire Eclipse "de La bibliothèque de balises descripteur que vous cherchez est "src/web/WEB-INF/(exemple)-taglib/(exemple).tld"?

J'ai déjà posé cette question sur l'Éclipse forums de support, sans résultats utiles.

28voto

stivlo Points 28997

Dans Eclipse Helios "Java EE les Dépendances des modules" dans les propriétés du projet a été remplacé par "le Déploiement de l'Assemblée".

Afin de résoudre ce problème avec Eclipse Helios, je l'ai fait est le suivant:

  • Clic droit sur le projet dans l'explorateur de packages et choisissez "Importer..."
  • Accepter la sélection par défaut "Système de Fichiers" et appuyez sur "Suivant"
  • Appuyez sur "Parcourir" dans le répertoire en ligne, allez à votre installation de tomcat et de localiser le fichier webapps/exemples/WEB-INF/lib (j'ai tomcat 6, d'autres versions de Tomcat peut avoir le chemin d'accès webapps/jsp-exemples/WEB-INF/lib). Une fois dans le chemin appuyez sur OK.
  • Cliquez sur en plus jstl.jar et standard.jar pour activer les cases à cocher
  • Sur la ligne Dans un dossier, cliquez sur Parcourir et choisissez le dossier de la bibliothèque. J'utilise /lib à l'intérieur du projet.
  • Cliquez Sur "Terminer"
  • Clic droit sur le projet dans la vue Package Explorer et choisissez propriétés (ou appuyez sur Alt + Entrée)
  • Cliquez sur "Java Build Path"
  • Cliquez sur "Add Jar", cliquez sur votre projet, dossier lib, sélectionnez jstl.jar, appuyez sur OK
  • Cliquez sur "Add Jar", cliquez sur votre projet, dossier lib, sélectionnez standard.jar, appuyez sur OK
  • Appuyez sur OK pour fermer la boîte de dialogue propriétés
  • Cliquez sur les Problèmes de vue et sélectionnez le message "Classpath .../jstl.jar ne seront pas exportées ou publié. Runtime ClassNotFoundExceptions peut en résulter.".
  • Cliquez droit dessus et sélectionnez "Quick Fix".
  • Acceptez la valeur par défaut "Marque de l'associé raw classpath comme un publier/dépendance à l'exportation" et appuyez sur Terminer.
  • Faire de même pour standard.jar

Cela résout le problème, mais si vous voulez vérifier ce qui s'est passé dans "le Déploiement de l'Assemblée", ouvrez les propriétés du projet, sélectionnez "Déploiement de l'Assemblée" et vous verrez que standard.jar et jstl.jar ont été ajoutés à la WEB-INF/lib du dossier.

18voto

Polaris878 Points 7833

C'était mon problème et comment je l'ai résolu ...

J'avais fait tout ce que tout le monde avait mentionné ci-dessus, etc., mais j'avais toujours cette erreur. Il s'avère que j'utilisais les uri de http://java.sun.com/jsp/jstl/fmt et http://java.sun.com/jsp/jstl/core qui étaient incorrects.

Essayez de changer l'uris d'en haut pour:

 http://java.sun.com/jstl/fmt
http://java.sun.com/jstl/core
 

Assurez-vous également que les fichiers JAR corrects sont référencés dans votre chemin de classe.

13voto

Philip Murphy Points 136

J'ai eu le même problème avec une rayures taglib URI montrant comme non trouvé. J'utilisais Indigo et Maven et lorsque j'ai coché Propriétés -> Chemin de construction Java -> Onglet Ordre et exportation, j'ai constaté (lors du paiement d'un nouveau projet) que la case "Dépendances Maven" avait été décochée pour une raison quelconque. Cochez simplement cette case et effectuez une nouvelle installation Maven pour effacer toutes les erreurs.

Je me demande pourquoi Eclipse ne suppose pas que je veux mes dépendances Maven dans le chemin de construction ...

10voto

ryandenki Points 880

Il s'avère que la cause était que ce projet n'a pas été considéré par Eclipse pour être réellement un projet Java EE; c'était un vieux projet de 3.1, et l'Éclipse de 3,5 nous utilisons maintenant besoin de plusieurs "natures" pour être définies dans le fichier de configuration du projet.

<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
    <nature>InCode.inCodeNature</nature>
    <nature>org.eclipse.dltk.javascript.core.nature</nature>
    <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
    <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
    <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
</natures>

J'ai été en mesure de trouver la cause par la création d'un nouveau "Dynamic Web Project" qui bien lire ses fichiers JSP, et de comparaison à l'encontre de la config de l'ancien projet.

La seule façon que j'ai pu trouver pour ajouter ces a été en modifiant le .fichier de projet, mais après la ré-ouverture du projet, de la magie, tout a fonctionné. Les paramètres référencés par pribeiro, au-dessus, n'est pas nécessaire puisque le projet est déjà conforme aux paramètres par défaut.

Les deux pribeiro et nitind les réponses que m'a donné des idées pour relancer ma recherche, merci.

Est-il un moyen de modifier ces "natures" de l'intérieur de l'INTERFACE utilisateur?

8voto

Mark J Miller Points 944

Couru dans le même problème, j'utilise maven alors j'ai ajouté ceci au pom de mon projet web:

 <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version> <!-- just used the latest version, make sure you use the one you need -->
    <scope>provided</scope>
</dependency>
 

Cela a résolu le problème et j'ai utilisé la portée "fournie" car, à l'instar de l'OP, tout fonctionnait déjà dans JBoss.

Voici où j'ai trouvé la solution: http://alfredjava.wordpress.com/2008/12/22/jstl-connot-resolved/

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