struts1+Myeclipse:java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I

java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
问题症状:可以在main方法里通过获得业务逻辑bean来查询数据库,但通过网页传参到action里再调用业务逻辑查询数据库,
即会出现这种异常提示。


原因:项目里有这两个jar包产生了冲突所致:antlr-2.7.6.jar和anltr-2.7.2.jar。将anltr-2.7.2.jar包删除即可。
之所以在main方法里能够顺利执行是因为:antlr.jar包是Struts2所依赖的。不通过网页传参,就不需要它,所以能够顺利执行。

 

解决:
网上已有方案:

(1)在build path中将hibernate移到struts上面

(2)或者直接删除struts中的antlr包,清理tomcat缓存(.me_tcat7\work\Catalina\localhost下的文件)

 

独创方案:
直接删除tomcat或者myeclipse有可能会自动又给加上来(除非保证全部删干净):删除struts中的antlr包后,从hibernate中antlr-2.7.6.jar拷贝过来(可以jar里面放一个名为2.7.6的txt文件,用于区别这是拷贝过来的),并且重命名为antlr-2.7.2.jar.

(struts中的antlr包和hibernate中antlr-2.7.6.jar的实际路径可以在Myeclipse的package视图里看到)

ok了,清净了。

(注意以后其他项目使用到struts1时实际用到的该报都是2.7.6)

struts2中也可以参照这个思路

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值