Aspect im SpringContext

jgh

Top Contributor
Hallo,

ich arbeite gerade ein Spring-Tutorial durch und bin im Kapitel Aspect-Programming angekommen und ein erstes [c]@Aspect[/c] erstellt
Java:
package de.jgh.digitalElektronik.aspect;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

@Aspect
public class LoggingAspect {
	@Before("execution(public String getName())")
	public void LoggingAdvice() {
		System.out.println("Advice rund. Get Method called");
	}
}

alles schön und gut, bisher funktionierte auch alles...erst als in der
Code:
spring.xml
auf die gezeigten Annotationen per [XML]<aop:aspectj-autoproxy />[/XML] auch zuggegriffen wurde, schmeißt er mir den u.g Stacktrace.

Meine ersten Vermutungen waren das es mit der aopalliance-alpha1.jar zusammenhängt, aber nachdem ich mir eine andere Version (aopalliance.jar) genutzt habe, ist der Fehler geblieben.

Hier der Consolenausdruck...bei auskommentierten aop-aspectj-Tag in der spring.xml läuft weiterhin alles sauber durch.

PHP:
Jan 24, 2012 11:14:13 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
Information: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@8ddc4c: startup date [Tue Jan 24 11:14:13 CET 2012]; root of context hierarchy
Jan 24, 2012 11:14:13 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
Information: Loading XML bean definitions from class path resource [spring.xml]
Jan 24, 2012 11:14:14 AM org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons
Information: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@183eeb0: defining beans [org.springframework.aop.config.internalAutoProxyCreator,triangle,circle,shapeService,loggingAspect]; root of factory hierarchy
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.config.internalAutoProxyCreator': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:997)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:943)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:728)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:449)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
	at de.jgh.digitalElektronik.AopMain.main(AopMain.java:10)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:162)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:76)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:990)
	... 12 more
Caused by: java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.<init>(AnnotationAwareAspectJAutoProxyCreator.java:52)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
	... 14 more
Caused by: java.lang.ClassNotFoundException: org.aopalliance.aop.Advice
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 56 more
 
M

maki

Gast
Welche Springversion nutzt du denn?
Auf der Webseite sollte man doch alles ind er richtigen Version runterladen können, ein Buildsystem mit Depdency Management macht das automatisch.

Nutzt du die Spring Doku und die offiziellen Beispiele?
Wenn nicht, warum?
Falls doch, dann kannst du die letzte Frage ignorieren ;)
 

jgh

Top Contributor
ich nutze spring in der version 3.1.0

und mache gerade hier ein tutorial. Auf dem Link verweist er auf die noch einzubindenden Dependcies.

The links for the dependencies are:
AspectJ: AspectJ Downloads
AOP Alliance: AOP Alliance
CGILIB: Code Generation Library - Code Generation Library
Spring 3 ASM: ASM - Home Page

Nein, ich nutze die SpringDoku und die offiziellen Bsp leider nicht...keine Ahnung, ist natürlich dumm...aber wenn man irgendwo mal angefangen hat und bis jetzt (Kapitel 27) lief es auf Anhieb Klasse....

[edit]verursacht denn die aopalliance den Fehler?[/edit]
 
M

maki

Gast
Hilft es nciht wenn du Spring 3.10. RELEASE inkl. Abhängigkeiten runterlädst?

Da sind auf jedenfall die richtigen Verisonen dabei, wenn diese im Classpath liegen und du immer noch deine ClassNotFoundException bekommst, könnte es an etwas anderem liegen, zB. OSGi, verschiedene Classloader (JEE, WebApp), etc. pp.
 

Neue Themen


Oben