您的位置:首页 > 其它

TransactionProxyFactoryBean 代理事务 $Proxy9 cannot be cast to异常解决方法

2016-04-12 19:04 363 查看
异常如下:

[com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor]-[ERROR] $Proxy9 cannot be cast to com.student.service.StudentService

java.lang.ClassCastException: $Proxy5 cannot
be cast to com.student.service.StudentService

解决方法:

导致出问题的代码片段:

//userService定义为接口类型!!! 不能是实现类类型

private static
UserServiceBean
userService;

@BeforeClass

public static void setUpBeforeClass() throws Exception {

try {

ApplicationContext cat = new ClassPathXmlApplicationContext("beans.xml");

userService = (UserServiceBean) cat.getBean("userServiceBean");

} catch (RuntimeException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

正确代码:

private static UserService userService;

@BeforeClass

public static void setUpBeforeClass() throws Exception {

try {

ApplicationContext cat = new ClassPathXmlApplicationContext("beans.xml");

userService = (UserService) cat.getBean("userServiceBean");

} catch (RuntimeException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

这主要代理需要用到接口

Ps: 所以通过这种代理的话,必须声明一个接口(例如Service),并在接口中声明实现类(例如: UserService)所需要的方法,这样 userService = (UserService)
cat.getBean("userServiceBean")

其中把 private static UserService userService 写成了 private static UserServiceBean userService
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: