2011-08-20 34 views
8

Excepción en hilo "principal" org.springframework.beans.factory.BeanCreationException: Error crear bean con el nombre 'org.springframework.aop.aspectj.AspectJPointcutAdvisor # 0': Falló la instanciación del bean; excepción anidada es org.springframework.beans.BeanInstantiationException: No se pudo instantiate clase de bean [org.springframework.aop.aspectj.AspectJPointcutAdvisor]: Constructor arrojó excepción; la excepción jerarquizada es java.lang.IllegalArgumentException: punto de corte no está bien formada: esperando 'patrón de nombre' en la posición 49 caracteres ejecución (* com.idol.performers.Performer.perform (..)primavera AOP pointcut no está bien formado

?

lo que está mal con mi punto de corte En el libro se dice que

(..) // means taking any arguments 

mi xml:

... 
<aop:before pointcut="execution(*com.idol.performers.Performer.perform(..))" method="takeSeats"/> 
... 

Respuesta

11

Prueba esto:

<aop:before pointcut="execution(* com.idol.performers.Performer.perform(..))" method="takeSeats"/> 

La cuestión es que usted no tiene ningún espacio entre * y com.idol.performers.Performer.perform(..)

+0

errores de análisis sintáctico A veces puede conducir a mensajes oscuros. En este caso, pensó que el comodín '*' era parte de 'com.idol.performers.Performer.perform', lo que significaba que esperaba ese tipo como el tipo de devolución, en lugar de solo el' * '. Luego, sugiere que antes de que vea un '(', que necesita tener un 'patrón de nombre', es decir, el nombre del método. Es por eso que el espacio es necesario y eso es realmente lo que quería decir, la mejor forma en que podría. –

2

No debe haber espacio entre * y com.idol.performers.Performer.perform (..)

Cuestiones relacionadas