java.lang.NoClassDefFoundError: dans eclipse, maven
Dans eclipse avec maven, j'ai ajouter une dépendance comme un fichier jar,
comme ceci:
<dependency>
<groupId>xyz-core</groupId>
<artifactId>xyz-core</artifactId>
<version>0</version>
<scope>system</scope>
<systemPath>/home/xyz/xyz-core.jar</systemPath>
</dependency>
Dans ce fichier jar, j'ai une interface qui utilise dans mon application.
Quand je lance mon application sur serveur tomcat Ce spectacle d'exception pour cette interface
Exception sending context initialized event to listener instance of class
org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: com/mxgraph/canvas/mxICanvas2D
tout mxICanvas2D
est une interface.
Vous devez ajouter un stacktrace également partie du printemps config
OriginalL'auteur Prashant Aggarwal | 2013-09-07
Vous devez vous connecter pour publier un commentaire.
C'est probablement parce que vous avez mis à la portée de
system
. Selon le Maven de la documentation:En d'autres termes, la dépendance n'est pas mis sur votre chemin de classe lorsque vous exécutez votre application si vous utilisez
system
; vous devez le faire vous-même.Utiliser l'un de l'autre étendues, par exemple
compile
.Supprimer la
systemPath
élément de la dépendance, et installer la dépendance dans votre repository Maven à la place.merci ,le problème a été résolu
Bon! Vous pouvez cliquez sur la coche en haut à gauche de ma réponse à l'accepter comme la réponse à votre question.
Il ne fonctionne pas pour vous, parce que vous avez un problème différent, apparemment. Cela ne veut pas dire que ma réponse est mauvaise et ne fonctionne pas en général. Notez que l'OP cité, il a résolu son problème... Poster une nouvelle question et d'expliquer votre problème.
OriginalL'auteur Jesper
Avez-vous ajouté, "les Dépendances Maven" pour le projet "Déploiement Web de l'Assemblée". Si pas, ajoutez-le comme suit:
Clic droit sur votre projet -> Propriétés -> Déploiement de l'Assemblée -> Add -> Java Build Path Entrées -> Suivant, puis à partir de là, vous pouvez ajouter des "Dépendances maven". Puis construire et essayez d'exécuter votre application.
grâce à des hommes! Vous êtes résolu mon temps
OriginalL'auteur Debojit Saikia
Puisque vous utilisez le système de portée, il signifie que maven va l'utiliser pour compiler votre projet, vous ne verrez pas vos erreurs, toutefois, lorsque vous exécutez votre application dans tomcat, qui n'est pas liée à maven et tomact ne savent pas où vos dépendances, une façon de le résoudre est copiez le nécessaire .les bocaux à votre tomcat/lib dossier.
Habituellement, vous souhaitent d'avoir fourni ou de compiler portée, cependant, ces étendues sont utilisées si vous avez un dépôt. Lorsque vous créez un nouveau mavenized projet et de le construire, maven va créer un .jar pour cette dépendance dans votre machine locale (c:/users/user/.m2/repository/). Qui va travailler pour vos propres projets.
OriginalL'auteur porfiriopartida