2012-09-04 11 views
12

tengo dentro aspectj la expresión:expresión AspectJ da formales no unido por error pointcut

@Pointcut("within(com.param.cpms.dao.impl.ProjectMetaDaoImpl)") 
public void daoExceptionHandle() { 

} 

En Spring 3.0 inicio, estoy recibiendo el siguiente error :

nested exception is java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut 

Respuesta

20

Probablemente el problema no está en su punto de corte, sino en un consejo que usa ese punto y usa un parámetro que no existe en el punto de corte. Simplemente elimine el parámetro del consejo (bueno, o agréguelo al punto de corte).

+0

Cómo añadir parámetros? –

+0

En serio: No puede hacer esta pregunta sin proporcionar ningún contexto. ¿Qué quieres hacer con el parámetro de consejo? ¿Qué quieres vincular a la variable independiente? Dependiendo de la respuesta, usaría 'this()', 'target()', 'args()', '@annotation()' o algo más. P.S .: No soy un médium, quizás un mentalista, pero ese es un tema diferente. ;-) – kriegaex

4

La publicación es bastante antigua, pero, para completar, agrego otra razón, si utiliza @Around.

Según Spring AspectJ documentation el primer argumento del consejo debe ser ProceedingJoinPoint. Si falta, obtendrá exactamente este mensaje de excepción. Lamentablemente, la excepción no apunta a un consejo por error, por lo que resolver el error es impredecible.

2

Recibí este error debido a una importación incorrecta de la clase. Debería haber importado la clase de importación org.aspectj.lang.JoinPoint, pero en su lugar importé otra clase de Joinpoint de un paquete diferente.

1

También tuve este problema, y ​​en mi caso se trataba de una importación mal desde: org.aopalliance.intercept.Joinpoint;

Tiene que ser: org.aspectj.lang.JoinPoint;

Cuestiones relacionadas