Trouble Shooting(1)AOP Configuration

Trouble Shooting(1)AOP Configuration
Today, once I configured AOP around to my spring project. It gives me this kind of error message.

Error Message:
java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:254)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:925)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:835)

Solution:
Mostly, this is because of the parameters error. I put 3 parameters in my around method. But I only got 2 in the configuration file. That is the root cause. After I changed my configuration, my files are as follow:

<aop:aspect ref="advisor_catalogControllerImpl_search">
<aop:pointcut id="catalogControllerImpl_search" expression="execution(* com.sillycat.graphite.web.controller.impl.CatalogControllerImpl.search(..)) and args(request,response,..)"/>
<aop:before pointcut-ref="catalogControllerImpl_search" method="adviceBefore"/>
<aop:around pointcut-ref="catalogControllerImpl_search" method="adviceAround"/>
<aop:after-returning pointcut-ref="catalogControllerImpl_search" returning="modelAndView" method="adviceAfterReturning"/>
</aop:aspect>

<bean id="advisor_catalogControllerImpl_search" class="com.sillycat.graphite.web.customization.CustomCabelasCatalogController_search"/>

public class CustomCabelasCatalogController_search extends
ControllerAdvisorBase {
…snip…
}

public class ControllerAdvisorBase {

public void runBefore(HttpServletRequest request, HttpServletResponse response) {
// Need to be customized by store
}

public void runAfterReturning(HttpServletRequest request, HttpServletResponse response, ModelAndView modelAndView) {
// Need to be customized by store
}

public Object runAround(ProceedingJoinPoint joinPoint, HttpServletRequest request, HttpServletResponse response) throws Throwable {
// Need to be customized by store
return joinPoint.proceed();
}

public final void adviceBefore(JoinPoint jp, HttpServletRequest request, HttpServletResponse response) {
log("Entering", jp, null);
runBefore(request, response);
}

public final void adviceAfterReturning(JoinPoint jp, HttpServletRequest request, HttpServletResponse response, ModelAndView modelAndView) {
log("Exiting", jp, modelAndView);
runAfterReturning(request, response, modelAndView);
}

public final Object adviceAround(ProceedingJoinPoint jp, HttpServletRequest request, HttpServletResponse response) throws Throwable {
log("Around", jp, null);
return runAround(jp, request, response);
}

private void log(String prefix, JoinPoint jp, ModelAndView modelAndView) {
StringBuilder sb = new StringBuilder();
sb.append(prefix).append(" ").append(jp.toString());

if (logger.isDebugEnabled()) {
Object[] args = jp.getArgs();
if (args != null && args.length != 0) {
sb.append(" with ").append(args.length).append(" args.\n");
for (int i = 0; i < args.length; ++i)
sb.append("args[").append(i).append("]: ").append(args[i]).append("\n");
}

if (modelAndView != null)
sb.append("Returned ").append(modelAndView);

logger.debug(sb.toString());
} else
logger.info(sb.toString());
}
...snip...
}


references:
http://forum.springsource.org/showthread.php?62460-Formal-unbound-in-pointcut
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值