Ausnahme java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Aspekt
Ich vor kurzem begonnen AspectJ
und schrieb ein einfaches Aspekt für die Protokollierung.
Habe ich unten definierten Abhängigkeiten in meine pom-Datei:
<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>
Und Folgende Artefakte vorhanden sind in-ear/lib-Ordner:
- aspectjrt-1.7.1.jar
- aspectjweaver-1.7.1.jar
- spring-aspects-3.2.1.RELEASE.jar
Bin ich immer unter Ausnahme auf Dienst starten.:
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]
Bearbeiten 1 - ich bin mit JBOSS 7.1
und ich denke, es gibt einige Probleme mit AspejctJ
und JBOSS
.
https://stackoverflow.com/questions/33164216/load-time-weaving-with-aspectj-in-jboss-as-7-1
stackoverflow.com/questions/25861105/... ?
Überprüfen Sie diese Antwort stackoverflow.com/questions/6263311/...
Ich habe durch die Fragen und Ihre Antworten. Kein Glück. In Lokalen, die ich ausführen kann, mit der gleichen Konfiguration, aber es funktioniert nicht, wenn ich dem bereitstellen auf JBoss-server.
Schlecht beraten: versuchen Sie es, um Paket-Gläser von aspectJ in der deployment-unit wie in
Was ist Ihre Anwendung? Haben Sie ein Schnellstart-oder haben Sie ein einfaches Beispiel-code?
Überprüfen Sie diese Antwort stackoverflow.com/questions/6263311/...
Ich habe durch die Fragen und Ihre Antworten. Kein Glück. In Lokalen, die ich ausführen kann, mit der gleichen Konfiguration, aber es funktioniert nicht, wenn ich dem bereitstellen auf JBoss-server.
Schlecht beraten: versuchen Sie es, um Paket-Gläser von aspectJ in der deployment-unit wie in
WEB-INF/lib/
wenn mit war
. Manchmal ist die Umgebung, die zur Ausführung bieten nicht die class-Dateien der Laufzeit-Abhängigkeiten wie Dienstleistungen. Wenn es läuft, dann kennen Sie das problem und beheben es mit Hilfe der richtigen Art und Weise. Überprüfen Sie auch, dass, wenn eine Klasse von aspecJ Paket deklariert werden muss als Bohne. Ich bin auch vor ähnlichen problem mit hibernate. Ich Zwang jar verpackt und es lief.Was ist Ihre Anwendung? Haben Sie ein Schnellstart-oder haben Sie ein einfaches Beispiel-code?
InformationsquelleAutor Atul | 2016-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen NoClassDefFoundError, wie dies in einem maven-Projekt ist in der Regel aus einer Bibliothek Konflikt. Es ist nicht genügend Informationen in der Frage, die Sie stellen nur einen Ausschnitt aus Ihrem pom und zeigen nicht die version von Frühjahr Aspekte, die Sie verwenden. Sie müssen laufen mvn dependency:tree und stellen Sie sicher, verwenden konsistente Versionsnummern aller aspectj depenendecies.
Edit: Es ist definitiv eine Art Bibliothek Konflikt, weil Sie erwähnen, spring-Aspekte 3.2.1.FREISETZUNG in die Frage, aber die stack-trace enthält eine Menge von Referenzen auf den Frühling 3.1.1.RELEASE-Bibliotheken.
Entweder du hast einen Tippfehler in deiner Frage, oder Sie haben, miteinander in Konflikt stehende Versionen von Bibliotheken. Sie sollten keine 3.1.1.RELEASE-Versionen der Bibliotheken (wie in Ihrem stack-trace) mit 3.2.1.RELEASE-version von spring Aspekte.
InformationsquelleAutor hyness
Scheint es jar mit der Klasse
org.aspectj.lang.annotation.Aspect
ist nicht geladenclasspath
zur Laufzeit, können Sie versuchen, entfernen von unten Abhängigkeit:hinzufügen und unten in den classpath:
InformationsquelleAutor Arpit
Antwort auf Ihre Frage
Habe ich ein Beispiel gegeben POM, können Sie überprüfen, entsprechend zu match mit Ihrem bestehenden POM.
Ist es empfehlenswert, wählen Sie Frühling-3.2.10.RELEASE-version als standard-version erscheint am jüngsten, als Sie Ihre version in Ihrer Frage erwähnt. Es gilt für diese spezifischen Kontext nur. Sonst würde ich empfehlen, um zu aktualisieren Sie Ihre JAR-Dateien auf den Frühling 4.X-version.
InformationsquelleAutor Praveen Kumar K S
Um zu überprüfen, ob Ihr Krieg war eingewickelt mit dem passenden Glas (aspectrj - die wirklich enthalten diese Klasse -org.Aspekt.lang.Anmerkung.Aspekt).
Versuchen (innerhalb von eclipse) hinzufügen, diese Abhängigkeit manuell.
Rechtsklick auf das Projekt -> - Bereitstellung Baugruppe -> hinzufügen -> Archive von Dateisystem -> wählen Sie die aspectjrt-1.7.1.jar (Sie finden es in Ihrem lokalen .m2-repo).
bewerben
führen Sie den neuen Krieg -> jetzt ist der Krieg sollte auch diese Abhängigkeit. Wenn die Fehlermeldung Weg ist -> das zeigt, dass etwas falsch gelaufen ist mit Krieg Verpackung Ziel.
InformationsquelleAutor Hezi Schrager