日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SSH:hql语句传参报错,及antlr-2.7.2.jar重复包的删除

發(fā)布時(shí)間:2025/3/11 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSH:hql语句传参报错,及antlr-2.7.2.jar重复包的删除 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問(wèn)題:

使用hql語(yǔ)句時(shí)出現(xiàn)

java.lang.reflect.InvocationTargetException(即使用hql回調(diào)函數(shù)帶參數(shù)時(shí))

或者是

antlr.collections.AST.getLine()I異常


【解決方法一:myeclipse8.6/10】

我用的myeclipse8.6,(10也是同樣的方法)

裝在D:\MyEclipse8.6\,SSH組合完成后,執(zhí)行hibernate的HQL查詢時(shí),

報(bào)錯(cuò):java.lang.NoSuchMethodError:antlr.collections.AST.getLine()I

?

看來(lái)是antlr這個(gè)語(yǔ)法解析包出錯(cuò)

?

因?yàn)镾truts自帶的antlr-2.7.2.jar,比Hibernate3.3自帶的antlr-2.7.6.jar的版本要低,

故要?jiǎng)h除前一個(gè)低版本的,

?

struts1.3和2.1都帶有antlr-2.7.2.jar,下面我要把它們都清除了,

由于myeclipse添加的struts性能不是放在工程lib下的,而是myeclipse自帶的,

所以刪除比較麻煩,我覺得最簡(jiǎn)單的做法應(yīng)該是這樣:

?

【從文件夾中刪除antlr-2.7.2.jar】

D:\MyEclipse8.6\MyEclipse-8.6\configuration\org.eclipse.osgi\bundles

下搜索antlr-2.7.2.jar完成后能看到的都刪除掉(可能有些是在1.3下面的,有些是在2.1下面的)

?

【從jar中刪除antlr-2.7.2.jar】

在D:\MyEclipse8.6\Common\plugins

搜索 *struts*.jar 會(huì)發(fā)現(xiàn),出來(lái)三個(gè)選中一個(gè)文件,

?

【1】打開方式選擇壓縮包,我的winRAR的,com.genuitec.eclipse.cross.easystruts.eclipse_8.6.0.me201007231647.jar

在lib下和data\1.3下要?jiǎng)h除antlr-2.7.2.jar(這個(gè)是刪除1.3里面的)

?

【2】再打開com.genuitec.eclipse.struts2_8.6.0.me201007292038.jar

data\2.1\core 下刪除antlr-2.7.2.jar?(這個(gè)是2.1里面的)好了,這個(gè)就從struts1.3和2.1中移除了,

因?yàn)檫@兩個(gè)jar是common目錄下的,所以刪除了后,再運(yùn)行myeclipse后,

myeclipse就不能再?gòu)倪@兩個(gè)包中找antlr-2.7.2.jar并加載了。


【注意】如果程序已經(jīng)運(yùn)行過(guò),則同時(shí)需要?jiǎng)h除TOMCAT下的antlr-2.7.2.jar


【解決方法二:myeclipse8.5】

參考:http://blog.csdn.net/wwwihpccn/article/details/5770904

myEclipse8.5下SSH2開發(fā)時(shí)如何刪除antlr-2.7.2包

?

SSH2組合完成后,執(zhí)行hibernate的HQL查詢時(shí),報(bào)錯(cuò):

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

?

看來(lái)是antlr這個(gè)語(yǔ)法解析包出錯(cuò)

因?yàn)镾truts2.1.8.1自帶的antlr-2.7.2.jar,比Hibernate3.3自帶的antlr-2.7.6.jar的版本要低,故要在build path里刪除前一個(gè)低版本的。

?

解決方法:假設(shè)你的myEclipse安裝在G:/ Genuitec目錄下

1)修改myEclipse的安裝目錄的配置文件:

G:/Genuitec/MyEclipse 8.51/configuration/org.eclipse.osgi/bundles/105/1/.cp/preferences.ini

去掉其中的MYECLIPSE_STRUTS2_DATA_HOME/2.1/core/antlr-2.7.2.jar;/

然后再刪除antlr-2.7.2.jar: 有兩處

G:/Genuitec/MyEclipse 8.51/configuration/org.eclipse.osgi/bundles/105/1/.cp/data/2.1/data

G:/Genuitec/MyEclipse 8.51/configuration/org.eclipse.osgi/bundles/105/1/.cp/data/2.1core

2)然后會(huì)發(fā)現(xiàn)在重新發(fā)布程序后,又在程序的lib目錄下出現(xiàn),沒(méi)有真正刪除。

繼續(xù)查看myEclipse的安裝目錄:仔細(xì)尋找相關(guān)配置文件。

在myEclipse下,查看struts2包的屬性:

melibrary.com.genuitec.eclipse.struts2.MYECLIPSE_STRUTS21_CORE

這是一個(gè)myEclipse的變量,查看這個(gè)字符串是在哪個(gè)文件中定義的。

G:/Genuitec/MyEclipse 8.5 1/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info

找到其中的與struts有關(guān)的項(xiàng),定位到struts2,即看到這個(gè)包

G:/Genuitec/Common/plugins/com.genuitec.eclipse.struts2_8.5.0.me201003121946.jar

再查看它,知道有個(gè)配置文件“preferences.ini”,修改它,去掉相關(guān)antlr-2.7.2.jar信息,然后再去掉包中自帶的antlr-2.7.2.jar。

?

所以,最后小結(jié)如下:

把G:/Genuitec/Common/plugins/com.genuitec.eclipse.struts2_8.5.0.me201003121946.jar包中的配置修改,并去掉其中的antlr-2.7.2.jar即可。

?

myEclipse的目錄分兩大類,一類是工作目錄,一類是系統(tǒng)目錄,而上述的包就放在系統(tǒng)目錄中


【解決方法三:myeclipse菜單】

找到個(gè)更簡(jiǎn)單的方法

當(dāng)在幾種框架集成的時(shí)候,在調(diào)用HibernateDaoSupport中的某個(gè)方法時(shí)會(huì)出現(xiàn):

?

java.lang.NoSuchMethodError:antlr.collections.AST.getLine()I 的錯(cuò)誤。這是因?yàn)樵趕truts2自帶的

antlr-2.7.2.jar包的版本較低。

?

需要換成antlr-2.7.6.jar。其實(shí)在項(xiàng)目中已經(jīng)存在了antlr-2.7.6.jar這個(gè)包,現(xiàn)在唯一需要做的就是刪除

antlr-2.7.2.jar包。

?

選擇windows---preferences---在文本框中搜索struts 2(中間有空格)---選擇struts 2---選擇antlr-

2.7.2.jar---Remove---OK。


【備注:Myeclipse整合struts2+hibernate+spring的重復(fù)jar包】

antlr-2.7.2(Struts 2 Core Libraries)

antlr-2.7.6(Hibernate 3.2 Core Libraries)

?

aopalliance-1.0(Struts 2 Core Libraries)same

aopalliance??? (Spring AOP Libraries)??? same

?

asm-2.2.3(Spring AOP Libraries)

asm?????(Hibernate 3.2 Core Libraries) -1.5.3

?

commons-collections-2.1.1 (Hibernate 3.2Core Libraries)

commons-collections-3.2?? (Struts 2 Core Libraries)

?

commons-lang-2.3(Struts 2 Core Libraries)

commons-lang??? (Spring 2.5 Persistence JDBC Libraries)-2.2

?

commons-logging-1.0.4(Hibernate 3.2 CoreLibraries)

commons-logging????? (Spring 2.5 Core Libraries)-1.1.1

?

log4j-1.2.11(Hibernate 3.2 Core Libraries)

log4j-1.2.15(Spring 2.5 Core Libraries)

上面jar包重復(fù),可以刪除重復(fù)jar包,但要注意版本問(wèn)題

總結(jié)

以上是生活随笔為你收集整理的SSH:hql语句传参报错,及antlr-2.7.2.jar重复包的删除的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。