2016-03-22 8 views
1

Ich erhalte die folgende Fehlermeldung, wenn ich versuche, eine meiner Anwendungen ausführen:@annotation auf Java 5 Compliance-Ebene unterstützt oder über

error the @annotation pointcut expression is only supported at Java 5 compliance level or above 

Die Anwendung verwendet AspectJ 6.0, AspectJWeaver 1,8 und SpringAspects 4.2 Abhängigkeiten . Ich habe überprüft, dass die JVM, die gestartet wird, JDK 1.8 ist und JAVA_HOME auch auf meine JDK 1.8-Installation eingestellt ist. Wenn ich mich von ähnlichen Fragen umsehe, sehe ich, dass die Antwort darin besteht, sicherzustellen, dass aspectjweaver auf 1,8 gesetzt ist und nicht AspectJ 1.5.4 mit etwas über JDK 1.6 benutzt. Gibt es eine andere Einstellung oder Konfiguration, die ich überprüfen kann?

Ein bisschen mehr von dem Stack-Trace:

Exiting with throwable: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name org.springframework.context.event.internalEventListenerProcessor': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error the @annotation pointcut expression is only supported at Java 5 compliance level or above 
org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'org.springframework.context.event.internalEventListenerProcessor': Initialization of bean failed; 
nested exception is java.lang.IllegalArgumentException: 
error the @annotation pointcut expression is only supported at Java 5 compliance level or above 
+0

was IDE Sie verwenden? – Andrew

+0

Eclipse, aber das ist die Anwendung wird von der Befehlszeile ausgeführt. exec $ {JAVA_HOME}/bin/java -Dsun.net.inetaddr.ttl = 1 ... – Niru

+0

überprüfen Sie Ihre 'JAVA_HOME' und' JRE_HOME' wieder – Andrew

Antwort

0

Kurz: Sie implementieren nicht AspectJ 6.0 mit widersprüchlichen AspectJWeaver 1.8 Abhängigkeiten.

Ich vermute, das nicht sehr hilfreich für jeden sein wird, da das Thema unglaublich Nische war. Meine lokale Implementierung hatte AspectJ 6.0 jar, das mit einer älteren Version von AspectJWeaver jar geliefert wurde. Der Befehl run für den Klassenpfad der Anwendung von/myApp/lib/*.

Um herauszufinden, alle Abhängigkeiten, die ich tat: sudo ps -ef | grep -i myApp gefolgt von lsof -p <pid> > ~/tmp. Ich war in der Lage, dies zu verwenden, da während der Anwendung Fehler aufgetreten sind, der Prozess noch gestartet wurde. Ich bemerkte eine ältere Version von aspectJWeaver im Klassenpfad und löschte AspectJ 6.0 Jar aus meinem lokalen Klassenpfadordner.

Verwandte Themen