Hi everyone,
I’m trying to use Spring AOP inside my Confluence server plugin but so far I had no luck.
I added the <aop:aspectj-autoproxy />
element in the plugin context XML (with the related schema) but on install I get the following error:
java.lang.NoClassDefFoundError: Could not initialize class org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory
Do I need to add any dependency inside the pom.xml?
Thanks.
1 Like
Hi, @francesco.stefanini.
I have not personally tried adding aspectj but based on the error you got, it does seem you need to add it as a dependency
inside the pom. Should it return a similar error still, look into Import-Package
inside the pom to add the necessary classes.
Cheers!
Ian
Hi @ianRagudo, thanks for the tip!
I tried several combinations, none of them worked so far 
If I add the org.springframework.aop
package into Import-Package
it says missing requirement [...] (osgi.wiring.package=org.aspectj.lang.annotation)
. I tried to add that package too but nothing happened, so I suppose it’s not exposed as an OSGi bundle, right?
After that I tried to add aspectjweaver
as a compile
dependency: in that case it said missing requirement [...] (osgi.wiring.package=com.bea.jvm)
and again there’s no way to import that package.
So I tried with the aspectjrt
dependency instead and the error changed a bit: now it says java.lang.ClassNotFoundException: org.aspectj.lang.annotation.Around not found by org.apache.servicemix.bundles.spring-aop
.
I’m out of ideas… It looks like there’s always a missing piece that doesn’t get exported by Confluence therefore there’s no way to use AOP inside a plugin
(but I hope I’m wrong
)
If you have any other suggestions I’m all hears!
Cheers,
Francesco
P.S: i’m using Spring Scanner v2, since I’m targetting Confluence 6.0+… I don’t know if it matters.
Hi @francesco.stefanini,
I ran into a similar issue using AspectJ. Older versions of org.aspectj:aspectjweaver
came with an own com.bea.jvm
package. The current version does not include it any longer. Afaik the last version including the package was 1.5.4.
The log output for failed OSGi wiring included a link to BundleException. This side suggest to have a look at the Felix web console to find out if there is a bundle serving the necessary package.
I did not find anything helpful there. I’m not even sure if it was working correctly. If you are able to use it and extract something useful please let me know.
You may be interested in the article Spring Java-based configuration and AOP in Jira plugins .
Regards
Thilo