Could it be that because of the way [EMAIL PROTECTED] does the classloading, currently it is not possible to use Spring-AOP (at least AspectJ annotation style)?
I googled the following exception I get java.lang.AbstractMethodError: org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator. findCandidateAdvisors()Ljava/util/List; All the posts are dealing with classloading or lib version incompatibilities, most of them dealing with ASM in the CGLIB jar (which is also used be JBoss' Hibernate). So I took a look at the POM for spring-aop.jar (Version 2.0.1, the one that is also packaged in my ServiceMix distribution) and inluced all jars listed in the dependency section in my servicemix-jboss-deployer-3.1-incubating.sar and in my SU. I also tried only putting them in the servicemix-jboss-deployer-3.1-incubating.sar and only putting them in the SU. The POM looks like this: <code> <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>oliver.osiris.playground.sandbox.swifttransformation-service</groupId> <artifactId>swifttransformation-service</artifactId> <version>1.0</version> </parent> <groupId>oliver.osiris.playground.sandbox.swifttransformation-service</groupId> <artifactId>swifttransformation-jsr181-su</artifactId> <name>Osiris :: sandbox :: swifttransformation-service :: swifttransformation-jsr181-su :: SU</name> <packaging>jbi-service-unit</packaging> <version>1.0</version> <url>${site.root}//swifttransformation-service/</url> <dependencies> <dependency> <groupId>aopalliance</groupId> <artifactId>aopalliance</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.5.2a</version> <scope>provided</scope> </dependency> <dependency> <groupId>aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.5.2a</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>2.1_3</version> </dependency> <dependency> <groupId>commons-attributes</groupId> <artifactId>commons-attributes-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>commons-attributes</groupId> <artifactId>commons-attributes-compiler</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>com.jamonapi</groupId> <artifactId>jamon</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>oro</groupId> <artifactId>oro</artifactId> <version>2.0.8</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.apache.servicemix</groupId> <artifactId>servicemix-jsr181</artifactId> <version>${servicemix-version}</version> </dependency> <dependency> <groupId>mycompany.framework</groupId> <artifactId>mycompany-shared</artifactId> <version>${myproject-version}</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.servicemix.tooling</groupId> <artifactId>jbi-maven-plugin</artifactId> <version>${servicemix-version}</version> <extensions>true</extensions> <configuration> <type>service-unit</type> <generateJbiDescriptor>false</generateJbiDescriptor> </configuration> </plugin> </plugins> </build> </project> </code> Help is greatly appreciated! It would be really sad if one could not use Spring-AOP (AspectJ style). Has anyone ever succeeded in getting this up and running? Thanks a lot in advance! Cheers, Oliver. gnodet wrote: > > Not really. Have you tried googling for the exception ? > > On 6/26/07, oliver kuntze <[EMAIL PROTECTED]> wrote: >> >> Perfect! Thanks a lot, Guillaume! >> >> When trying to deploy the advised SU I get the following exception: >> >> <code> >> org.springframework.beans.factory.BeanCreationException: Error creating >> bean >> with name 'org.springframework.aop.config.internalAutoProxyCreator': >> Initialization of bean failed; nested exception is >> java.lang.AbstractMethodError: >> org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator. >> findCandidateAdvisors()Ljava/util/List; >> </code> >> >> Still trying... >> >> Do you have any ideas??? >> >> Thanks very much! >> >> Cheers, >> >> Oliver. >> >> >> >> gnodet wrote: >> > >> > On 6/26/07, oliver kuntze <[EMAIL PROTECTED]> wrote: >> >> >> >> >> >> Ok, I think I got it. >> >> >> >> When a SU is deployed to a ServiceMix component, the component creates >> a >> >> Spring application context and configures the app according to the >> >> xbean.xml. I.e. every SU is in fact a Spring application. >> >> That means out of the box one is able to use Spring AOP aspects per >> SU. >> >> If >> >> one would like to have aspects for his/her "eai application", that is >> for >> >> a >> >> whole bunch of SAs, than one should extend ServiceMix / Xbean somehow >> so >> >> that a "global" xbean config containing the aspects is added to the >> >> ApplicationContext when the XBean SpringLoader has loaded the >> xbean.xml. >> >> Correct? >> > >> > >> > Exactly ! >> > >> > I tried to deploy a SU with an aspect but received the following >> > exception: >> >> BeanDefinitionStoreException: Unrecognized xbean namespace mapping: >> >> http://www.springframework.org/schema/aop >> >> >> >> My xbean.xml looks like this: >> >> <code> >> >> <?xml version="1.0" encoding="UTF-8"?> >> >> <beans xmlns="http://www.springframework.org/schema/beans" >> >> xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0" >> >> >> xmlns:swifttransformation="http://mycompany/swifttransformation" >> >> xmlns:aop="http://www.springframework.org/schema/aop"> >> >> >> >> <aop:aspectj-autoproxy/> >> >> <bean class=" >> >> mycompany.playground.swifttransformation.MonitoringAspect" >> >> id="swiftTransformationMonitoringAspect"/> >> >> >> >> <jsr181:endpoint endpoint="swift2xml" >> >> service="swifttransformation:iso15022-transformation" >> >> >> >> serviceInterface=" >> >> mycompany.playground.swifttransformation.SwiftToXmlTransformer" >> >> typeMapping="xmlbeans"> >> >> <jsr181:pojo> >> >> <bean >> >> >> class="mycompany.playground.swifttransformation.SwiftToXmlTransformerImpl" >> >> /> >> >> </jsr181:pojo> >> >> </jsr181:endpoint> >> >> </beans> >> >> </code> >> >> >> >> The spring.handler file in the spring-beans-2.0.1.jar of my ServiceMix >> >> distribution contains the following line: >> >> http\://www.springframework.org/schema/aop= >> >> org.springframework.aop.config.AopNamespaceHandler >> >> >> >> So everything seems to be in place. >> >> >> >> Any ideas why I get the exception? >> > >> > >> > I don't know why the handler is defined in spring-beans while the >> > associated >> > class is not. >> > You should put spring-aop in the SU by adding it to your pom.xml. >> > It should do the trick. >> > >> > Thanks a lot for helping a newbie out! >> >> >> >> Cheers, >> >> >> >> Oliver. >> >> >> >> >> >> gnodet wrote: >> >> > >> >> > I'm not sure to understand all the problems. >> >> > If I had to do AOP inside a SU, I would just consider the SU as a >> >> spring >> >> > application (even if it has to contain a JBI endpoint). >> >> > You can put additional jars needed in the SU and you should be able >> to >> >> use >> >> > AOP. You don't really need to hack the components >> >> > or the main configuration file. >> >> > >> >> > Or maybe you want to do AOP without configuring it explicitely ? >> This >> >> is >> >> > currently not possible. I think it should be doable by extending >> >> > the components somehow so that they always load other spring >> >> configuration >> >> > files: for example when a component creates a spring >> >> > ApplicationContext when loading a xbean.xml, it could be configured >> to >> >> > always load an aop.xml configuration file that you would provide >> >> > and which would add all the needed definitions. >> >> > >> >> >> >> -- >> >> View this message in context: >> >> >> http://www.nabble.com/Spring-AOP-integration-in-ServiceMix-tf3975690s12049.html#a11303312 >> >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> >> >> >> >> > >> > >> > -- >> > Cheers, >> > Guillaume Nodet >> > ------------------------ >> > Principal Engineer, IONA >> > Blog: http://gnodet.blogspot.com/ >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/Spring-AOP-integration-in-ServiceMix-tf3975690s12049.html#a11305922 >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> >> > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Principal Engineer, IONA > Blog: http://gnodet.blogspot.com/ > > -- View this message in context: http://www.nabble.com/Spring-AOP-integration-in-ServiceMix-tf3975690s12049.html#a11321095 Sent from the ServiceMix - User mailing list archive at Nabble.com.
