Exception java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Aspect
J'ai récemment commencé à travailler sur AspectJ
et écrit un simple Aspect de la Journalisation.
J'ai défini ci-dessous les dépendances dans mon pom fichier:
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
Et objets Suivants sont présents dans l'oreille/lib dossier:
- aspectjrt-1.7.1.jar
- aspectjweaver-1.7.1.jar
- spring-aspects-3.2.1.RELEASE.jar
Je suis en dessous d'exception sur le démarrage du service.:
05:59:18,325 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-15) Context initialization failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'calNamingBean' defined in ServletContext resource [/WEB-INF/helixservicebeans.xml]: BeanPostProcessor before instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Aspect
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:452) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:740) [spring-context-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:449) [spring-context-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.17.Final.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.17.Final.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:89) [jboss-as-web-7.1.3.Final.jar:7.1.3.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Aspect
at org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory.hasAspectAnnotation(AbstractAspectJAdvisorFactory.java:119) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory.isAspect(AbstractAspectJAdvisorFactory.java:115) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.isInfrastructureClass(AnnotationAwareAspectJAutoProxyCreator.java:100) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:278) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:880) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
Edit 1 - je suis en utilisant JBOSS 7.1
et je pense qu'il y a certains problèmes avec AspejctJ
et JBOSS
.
https://stackoverflow.com/questions/33164216/load-time-weaving-with-aspectj-in-jboss-as-7-1
stackoverflow.com/questions/25861105/... ?
Cochez cette réponse, stackoverflow.com/questions/6263311/...
Je suis passé par à la fois les questions et leurs réponses. Pas de chance. En Local, je peux courir à l'aide de la même configuration, mais il échoue lorsque je suis déploiement de serveur JBoss.
Mauvais conseiller: essayer de regrouper les pots de aspectJ dans l'unité de déploiement comme dans
Quelle est votre demande? Avez-vous utilisé un démarrage ou avez-vous un exemple simple morceau de code?
Cochez cette réponse, stackoverflow.com/questions/6263311/...
Je suis passé par à la fois les questions et leurs réponses. Pas de chance. En Local, je peux courir à l'aide de la même configuration, mais il échoue lorsque je suis déploiement de serveur JBoss.
Mauvais conseiller: essayer de regrouper les pots de aspectJ dans l'unité de déploiement comme dans
WEB-INF/lib/
si vous utilisez war
. Parfois, l'environnement d'exécution ne fournissent pas les fichiers de classe de la durée d'exécution des dépendances de services. Si elle s'exécute que vous connaissez le problème et de le résoudre à l'aide de la bonne façon. Vérifiez également que si toute la classe de aspecJ paquet doit être déclaré en tant que bean. Je suis également confronté à un problème similaire avec la veille prolongée. J'ai forcé emballés jar et il a couru.Quelle est votre demande? Avez-vous utilisé un démarrage ou avez-vous un exemple simple morceau de code?
OriginalL'auteur Atul | 2016-02-14
Vous devez vous connecter pour publier un commentaire.
Un NoClassDefFoundError comme cela dans un projet maven est généralement à partir d'une bibliothèque de conflit. Il manque des informations dans la question, que vous ne fournissez un extrait de votre pom et de ne pas afficher la version du printemps sont les aspects que vous utilisez. Vous devez exécuter mvn dependency:tree et vérifier que vous êtes au moyen des mêmes numéros de version de tous les aspectj depenendecies.
Edit: Il ya certainement une sorte de bibliothèque d'un conflit parce que vous mentionnez printemps-aspects 3.2.1.La LIBÉRATION de la question, mais la trace de la pile contient beaucoup de références au printemps 3.1.1.COMMUNIQUÉ de bibliothèques.
Soit vous avez une erreur de frappe dans votre question ou si vous avez des versions contradictoires des bibliothèques. Vous ne devriez pas avoir 3.1.1.Versions de bibliothèques (comme dans votre stack trace) 3.2.1.Version de printemps aspects.
OriginalL'auteur hyness
Il semble pot contenant de la classe
org.aspectj.lang.annotation.Aspect
n'est pas chargé declasspath
au moment de l'exécution, vous pouvez essayez de supprimer en dessous de la dépendance:et ajouter ci-dessous dans votre classpath:
OriginalL'auteur Arpit
Réponse à votre Question
J'ai donné un exemple POM, vous pouvez valider en conséquence pour correspondre avec votre POM.
Il est recommandé de choisir Printemps-3.2.10.Version standard version est sorti sur les dernières que votre version mentionné dans votre question. Il s'applique à ce contexte spécifique seulement. Autre chose que je voudrais vous recommandons de mettre à niveau vos fichiers JAR à Ressort 4.X version.
OriginalL'auteur Praveen Kumar K S
Afin de vérifier que votre guerre a été emballé avec le pot (aspectrj - ce vraiment contenir cette classe org.d'aspect.lang.annotation.Aspect).
Essayer (au sein d'eclipse) pour ajouter cette dépendance manuellement.
clic droit sur le projet -> Déploiement de l'Assemblée -> add -> Archives à partir d'un fichier système -> choisir la aspectjrt-1.7.1.jar (vous pouvez le trouver dans votre local .m2 repo).
appliquer
exécuter la nouvelle guerre -> maintenant, la guerre devrait inclure cette dépendance. Si le message d'erreur a disparu -> qui indique que quelque chose s'est mal passé avec la guerre d'emballage objectif.
OriginalL'auteur Hezi Schrager