问题描述:
Maven 整合 SSH 时,出现如下错误:
java.lang.ClassCastException: com.markliu.sshintegration.entities.Department_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy
......
发现是类型转换异常,Department_$$_javassist_0代理类不能转换成 javassist.util.proxy.Proxy类型,最先想到的原因可能是包之间的冲突,打开 pom.xml 文件的 Dependency Hierachy 视图:
发现:hibernate-Core 和 Struts2-Core 中都依赖 javassist.xx.jar,但是版本不同,所以引起冲突!
**
解决方案
**
删除 Struts2-Core 中版本较低的 javassist.3.11.0.GA..jar:
<!-- struts2-core -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
<exclusions>
<exclusion>
<artifactId>javassist</artifactId>
<groupId>javassist</groupId>
</exclusion>
</exclusions>
</dependency>
本文介绍了一个在使用Maven进行SSH(Spring+Struts+Hibernate)整合时遇到的ClassCastException异常及其解决方法。异常源于Department_$$_javassist_0代理类无法转换为javassist.util.proxy.Proxy类型。原因是hibernate-Core和Struts2-Core依赖的javassist版本不一致导致冲突。解决方案是排除Struts2-Core中的低版本javassist依赖。
1450

被折叠的 条评论
为什么被折叠?



