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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

問題:

使用hql語句時出現(xiàn)

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

或者是

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


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

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

裝在D:\MyEclipse8.6\,SSH組合完成后,執(zhí)行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性能不是放在工程lib下的,而是myeclipse自帶的,

所以刪除比較麻煩,我覺得最簡單的做法應(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 會發(fā)現(xiàn),出來三個選中一個文件,

?

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

在lib下和data\1.3下要刪除antlr-2.7.2.jar(這個是刪除1.3里面的)

?

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

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

因為這兩個jar是common目錄下的,所以刪除了后,再運行myeclipse后,

myeclipse就不能再從這兩個包中找antlr-2.7.2.jar并加載了。


【注意】如果程序已經(jīng)運行過,則同時需要刪除TOMCAT下的antlr-2.7.2.jar


【解決方法二:myeclipse8.5】

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

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

?

SSH2組合完成后,執(zhí)行hibernate的HQL查詢時,報錯:

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

?

看來是antlr這個語法解析包出錯

因為Struts2.1.8.1自帶的antlr-2.7.2.jar,比Hibernate3.3自帶的antlr-2.7.6.jar的版本要低,故要在build path里刪除前一個低版本的。

?

解決方法:假設(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)然后會發(fā)現(xiàn)在重新發(fā)布程序后,又在程序的lib目錄下出現(xiàn),沒有真正刪除。

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

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

melibrary.com.genuitec.eclipse.struts2.MYECLIPSE_STRUTS21_CORE

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

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

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

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

再查看它,知道有個配置文件“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菜單】

找到個更簡單的方法

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

?

java.lang.NoSuchMethodError:antlr.collections.AST.getLine()I 的錯誤。這是因為在struts2自帶的

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

?

需要換成antlr-2.7.6.jar。其實在項目中已經(jīng)存在了antlr-2.7.6.jar這個包,現(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包,但要注意版本問題

總結(jié)

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

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