Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why server complaining about aspectOf is missing?

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 {
   ...
}
like image 537
huahsin68 Avatar asked Oct 17 '12 08:10

huahsin68


1 Answers

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.

like image 151
Reimeus Avatar answered Sep 24 '22 09:09

Reimeus