编写aop:around时出现的异常org.springframework.aop.AopInvocationException:
来源:互联网 发布:windows 10名版本 编辑:程序博客网 时间:2024/06/08 12:19
Exception in thread "main"org.springframework.aop.AopInvocationException: Null return value from advice does not match primitive return type for: public boolean org.spring.aop.User.login(java.lang.String,java.lang.String)
at org.springframework.aop.framework.CglibAopProxy.processReturnType(CglibAopProxy.java:351)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:83)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:646)
at org.spring.aop.User$$EnhancerBySpringCGLIB$$db4a87bb.login(<generated>)
at org.springframework.aop.framework.CglibAopProxy.processReturnType(CglibAopProxy.java:351)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:83)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:646)
at org.spring.aop.User$$EnhancerBySpringCGLIB$$db4a87bb.login(<generated>)
at lee.UserApp.main(UserApp.java:14)
在编写aop代码时,出现了上述的异常。我使用的是around类型的通知方法:我的aop代码如下:
<span style="font-size:18px;">package org.spring.aop;import org.aspectj.lang.ProceedingJoinPoint;public class LoginService {public void enter(String account,String password){System.out.println("some one ....");System.out.println("账号:"+account);System.out.println("密码:"+password);}public <span style="color:#ff0000;">void</span> leave(ProceedingJoinPoint joinpoint,String account,String password) throws Throwable{System.out.println("-------------------调用通知之前,around-------------");Object obj = joinpoint.proceed();System.out.println("------------------调用通知之后,around--------------");System.out.println("Is s ucceeded?" + obj);obj=false;//return obj;}}</span>
<pre code_snippet_id="260288" snippet_file_name="blog_20140327_3_2103398" name="code" class="java"><span style="font-size:18px;">public <span style="color:#ff0000;">boolean</span> login(String account,String password){System.out.println("--------login-------------");return this.account.equals(account)&&this.password.equals(password);}</span>
出错的原因是因为:org.springframework.aop.AopInvocationException: Null return value from advice does not match primitive return type for: public boolean org.spring.aop.User.login(java.lang.String,java.lang.String)
即:在调用around的时候,原方法的返回值(也就是你要织入的方法)与通知的返回值不一致。
从代码中看出:我是void 没有返回值,而我的login的方法是由返回值的!
所以修改方法是:aop代码中leave方法的返回值类型改为与织入方法返回值一样的类型。
我上面的代码修改方法是:把void 改为 Object。
0 0
- 编写aop:around时出现的异常org.springframework.aop.AopInvocationException:
- Spring中配置AOP出现org.springframework.beans.factory.BeanCreationException异常
- 异常:java.lang.ClassNotFoundException: org.springframework.aop.TargetSource
- spring-AOP编程出现org.springframework.beans.factory.BeanCreationException
- 部署Spring AOP出现org.springframework.beans.factory.BeanCreationException解决方法
- org.springframework.aop Interface ThrowsAdvice
- Spring -- org.springframework.aop.framework.ProxyFactoryBean
- java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource
- org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator
- java.lang.ClassNotFoundException: org.springframework.aop.TargetSource
- 解决异常java.lang.NoSuchMethodError: org.springframework.aop.scope.ScopedProxyUtils.isScopedTarget
- 基于Annotation的Spring AOP: @Around
- 5.spring的aop之@Around
- aop注解(@around)
- 在Spring Cloud框架整合微服务时出现的org.springframework.web.HttpMediaTypeNotSupportedException异常问题
- 【ssh学习笔记】struts处理json异常之JSONWriter can not access a member of class org.springframework.aop.TruePoin
- class not found org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator
- Could not load org.springframework.aop.framework.AdvisedSupport$MethodCacheKey
- oAuth
- DES加密源码
- 去掉Android app上的Title Bar
- 李克强来到赤峰市考察
- iOS 数据持久化一-属性列表
- 编写aop:around时出现的异常org.springframework.aop.AopInvocationException:
- 利用 SCILAB 设计 iir 滤波器设计(模拟滤波器双线性变换法)
- 微秒时间的获取
- php 正则获取img所有属性值,包括src等,保存一个,我不懂正则啊
- HttpServletRequest,对象,的详解
- HDU 2124
- keypad 驱动分析
- m3图像显示不完整,左侧被拉伸
- C++并发实战:面试题6:线程一次性同步