整合SSH java.lang.ClassCastException: xxx_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy
问题描述:
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>