Aspect im SpringContext

Dieses Thema Aspect im SpringContext im Forum "Application Tier" wurde erstellt von jgh, 24. Jan. 2012.

Thema: Aspect im SpringContext Hallo, ich arbeite gerade ein Spring-Tutorial durch und bin im Kapitel Aspect-Programming angekommen und ein...

  1. jgh
    jgh
    Hallo,

    ich arbeite gerade ein Spring-Tutorial durch und bin im Kapitel Aspect-Programming angekommen und ein erstes [c]@Aspect[/c] erstellt
    Code (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 (Text):
    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
     
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. 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 ;)
     
  4. jgh
    jgh
    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.

    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]
     
  5. jgh
    jgh
    danke, aber das hilft mir im Moment nicht ;)

    trotzdem werde ich deinen Rat für die Zukunft anwenden.
     
  6. 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.
     
  7. jgh
    jgh
    mmh habe ich doch geschrieben, das ich die Version 3.1.0 mir von der offizielen Seite geholt habe.(Spring Downloads | SpringSource.org) okay das RELEASE habe ich hier nicht erwähnt, weil die Version 3.1.0. ja die aktuellste ist...oder meinst du tatsächlich 3.10 ?????

    btw. Problem gefixed... Maven Repository: aopalliance » aopalliance » 1.0 hier gabs die richtige (für mich) Version

    Trotzdem danke, dass du dich meines Problems angenommen hast.
     
  8. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!