我用的myeclipse8.6, 装在 C:\Genuitec\
SSH组合完成后,执行hibernate的HQL查询时,报错:
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
看来是antlr这个语法解析包出错
因为Struts自带的antlr-2.7.2.jar比Hibernate3.3自带的antlr-2.7.6.jar的版本要低,故要删除前一个低版本的,而struts1.3 和2.1都带有antlr-2.7.2.jar ,下面我要把它们都清除了.
由于myeclipse 添加的struts性能(capability)不是放在工程lib下的,而是myeclipse自带的,所以删除比较麻烦,我觉得最简单的做法应该是这样:
C:\Genuitec\MyEclipse-8.6\configuration\org.eclipse.osgi\bundles 下搜索antlr-2.7.2.jar搜索完成后,把搜索结果能看到的都删除掉(可能有些是在1.3下面的,有些是在2.1下面的)
然后在 C:\Genuitec\Common\plugins
先选中其中的com.genuitec.eclipse.cross.easystruts.eclipse_8.6.0.me201007231647.jar打开方式选择压缩包,我用的是winRAR,在lib下和data\1.3下要删除antlr-2.7.2.jar(这个是删除1.3里面的)
然后再打开 com.genuitec.eclipse.struts2_8.6.0.me201007292038.jar
好了,这样就从struts1.3和2.1中移除了antlr-2.7.2.jar,因为这两份jar是common目录下的,所以删除了后,再运行myeclipse后, myeclipse就不能再从这两个包中找到antlr-2.7.2.jar并加载了.
myeclipse8.5也适用