Why server complaining about aspectOf is missing?

aop, aspectj, java, spring

Solution

This is a common error when wiring up aspect classes. It means that your aspect class, in this case `LoggingAspect` has not been converted into an aspect which can be applied.

2 methods to weave your class into an aspect are using the AJDT Eclipse plugin or the Maven AspectJ compiler plugin.

There are 3 ways to weave aspects:

- Compile-time weaving: compile either target source or aspect classes via dedicated aspectj compiler;

- Post-compile weaving: inject aspect instructions to already compiled classes (Can be applied to JAR files)

- Load-time weaving: inject aspect instructions to the byte code during class loading, i.e. load instrumented class instead of the 'raw' one;

Before an aspect class can be applied to a class it first need to be 'weaved' into an aspect.

An weaved aspect class will have these static methods added.

Problem

I am currently trying to inject Spring bean in AspectJ like the code shown below, anyhow I the server (WAS Liberty Profile) keep complaining the method aspectOf is missing. May I know how could I solve this problem? application-context.xml ``` <aop:aspectj-autoproxy/> <import resource="/context-file-A.xml"/> ``` context-file-A.xml ``` <bean id="loggingAspect" class="com.huahsin.LoggingAspect" factory-method="aspectOf"> ``` JAVA code ``` @Aspect public class LoggingAspect { ... } ```

Original source