Eclipse de débogage en temps classpath problème: Comment intégrez-vous l'un dépendant de sortie du projet dans un projet web d'exécution du classpath?
J'ai donc commencé avec un projet de services web (juste un projet web dynamique) qui construit et permet de déboguer correctement à partir d'eclipse. Nous avons tiré un morceau de code commun que nous voulons mettre dans une librairie partagée, de sorte que maintenant ces classes sont en cours dans un bocal de projet de projet web, références.
Sur le projet web, je n'ai de Projet->Propriétés->Java Build Path->Projets->Ajouter et ajouté le pot de projet. Et ce correctement résolu tous les temps de compilation classpath problèmes et tout ce qui s'appuie amende. Mais au moment de l'exécution, lorsque le serveur tomcat feux de, le printemps tente d'injecter une partie des classes contenues dans le fichier jar et je reçois un NoClassDefFoundError.
Mon .de classe et les propriétés des fichiers et le contenu de mon répertoire META-INF se trouvent dans l' ./répertoire de construction, mais mon WEB-INF/lib semble être référencé sur place, et le bocal de dépendance n'est pas d'avoir copié pour qu'il s'affiche dans le cadre de l'Application Web de la Bibliothèque.
Ce qui est de l'incantation magique pour dire éclipse que l'autre pot de projet doit être disponible pour tomcat au moment de l'exécution? De notre script ant, nous avons d'abord construire tout autre projet dans le WEB-INF/lib et tout fonctionne bien, mais pas pour l'éclipse de débogage.
OriginalL'auteur Brian Deacon | 2008-11-28
Vous devez vous connecter pour publier un commentaire.
Module Java EE dépendances permettrait de résoudre ce problème.
Vous avez déjà fait la tâche d'extraction de votre commune de classes dans son propre projet, éventuellement parce que d'autres projets dépendent de ces classes. De toute façon, vous devrez vous assurer que c'est un Utilitaire de projet (apparaît sous Java EE dans les assistants de projet), et pas juste un simple projet Java.
Un qui est fait, vous pouvez continuer à ajouter de l'Utilité du projet pour construire votre chemin (au moment de la compilation chemin) comme vous l'avez compris.
Supplémentaires (et dernière) étape consiste à établir un module Java EE dépendance entre votre projet Web Dynamique et de la bibliothèque partagée, ce qui provoque l'aide de l'utilitaire de classes pour être placé dans WEB-INF\lib cours de déploiement, et même lors de l'exportation de la GUERRE. Pour ce faire, visitez le web dynamique propriétés du projet, et accédez au module Java EE dépendances. S'assurer que votre projet d'utilitaire est sélectionné ici. Redéployer/publier votre application et vous devriez être bon d'aller.
Utilitaire de projets sont des projets Java, mais ils sont plus aptes à l'J2EE contexte. Ils représentent votre code (pas de tiers Pots) qui sont partagés entre plusieurs projets dans votre Entreprise Application. Habituellement, ce sont les classes utilisées dans de multiples Ejb et souvent un seul module Web.
J'ai l'habitude de ne pas placer les projets de services publics dans la plaine de la vanille projets Java, parce que les projets de services publics auront le Serveur de l'exécution de Pots automatiquement ajouté au classpath. Par exemple, je pourrais utiliser les sources de données à partir du même projet sans l'ajout du conteneur Pots pour le build path.
Et pour répondre à votre question sur la façon de vérifier le type de votre projet, vous pouvez vérifier la nature de votre projet à la .fichier de projet. Par exemple, la plaine de projets Java ont le org.eclipse.jdt.de base.javanature comme seule la nature dans mon Ganymède espace de travail.
Très utile. Merci!!!!
OriginalL'auteur Vineet Reynolds
Je compris cela après avoir passé quelque temps sur elle. Si vous êtes dans Eclipse Helios , allez à la
properties > deployment assembly > add > project
et sélectionnez le projet dépendant que vous souhaitez ajouter.OriginalL'auteur Anoop Isaac