解决Struts2 与 hibernate 中 javassist 冲突问题

错误大致如下

java.lang.ClassCastException: entity.userInfo_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy

解决方法:

  1. 若为maven管理的项目,只需在 struts-core依赖中添加下面内容的<exclusions>, 排除struts2中的javassist

    1. <dependency>
      	<groupId>org.apache.struts</groupId>
      	<artifactId>struts2-core</artifactId>
      	<version>${struts2-core.version}</version>
      	<exclusions>
      		<exclusion>
      			<artifactId>javassist</artifactId>
      				<groupId>javassist</groupId>
      		</exclusion>
      	</exclusions>
      </dependency>

  2. 若为直接导入方式,直接删除掉那个低版本的javassist


附:javassist的作用(摘自百度百科)

avassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京工业大学的数学和计算机科学系的 Shigeru Chiba (千叶 滋)所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态"AOP"框架。
关于java字节码的处理,目前有很多工具,如bcel,asm。不过这些都需要直接跟虚拟机指令打交道。如果你不想了解虚拟机指令,可以采用javassist。javassist是jboss的一个子项目,其主要的优点,在于简单,而且快速。直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。


转载于:https://my.oschina.net/u/2301987/blog/626437

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值