使用了spring,hibernate。部署在jboss eap6中时,查询时出现java.lang.ClassCastException: com.vteba.product.base.model.Tags_$$_javassist_26 cannot be cast to javassist.util.proxy.ProxyObject
com.vteba.product.base.model.Tags是一个实体类,使用了一对多自关联。
查询其他的实体了都没有这个问题。因为其他类没有关联的延迟加载。
解决办法:是因为自己项目中的javassist和jboss eap 6.1中的javassist.冲突了。
在jboss-deployment-structure.xml中使用jboss eap 的javassist。
如果是使用maven 则将其设为<scope>provided</scope>
<?xml version="1.0" encoding="UTF-8"?> <!-- 所依赖的JBoss的模组,就可以不需要再项目中引入jar包了 --> <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> <deployment> <dependencies> <!-- org.hibernate依赖了infinispan,所以不需要再引入 <module name="org.infinispan"/> --> <module name="org.hibernate"/> <module name="org.javassist"></module> <!-- <module name="org.jboss.resteasy.resteasy-jaxrs"></module> --> <!-- <module name="org.jboss.as.clustering.infinispan"/> <module name="org.jboss.as.jpa.hibernate" slot="4"/> slot指的是版本--> </dependencies> </deployment> </jboss-deployment-structure>