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

问题:

使用hql语句时出现

java.lang.reflect.InvocationTargetException(即使用hql回调函数带参数时)

或者是

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


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

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

装在D:\MyEclipse8.6\,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性能不是放在工程lib下的,而是myeclipse自带的,

所以删除比较麻烦,我觉得最简单的做法应该是这样:

 

【从文件夹中删除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 会发现,出来三个选中一个文件,

 

【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并加载了。


【注意】如果程序已经运行过,则同时需要删除TOMCAT下的antlr-2.7.2.jar


【解决方法二:myeclipse8.5】

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

myEclipse8.5下SSH2开发时如何删除antlr-2.7.2包

 

SSH2组合完成后,执行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里删除前一个低版本的。

 

解决方法:假设你的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)然后会发现在重新发布程序后,又在程序的lib目录下出现,没有真正删除。

继续查看myEclipse的安装目录:仔细寻找相关配置文件。

在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有关的项,定位到struts2,即看到这个包

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

再查看它,知道有个配置文件“preferences.ini”,修改它,去掉相关antlr-2.7.2.jar信息,然后再去掉包中自带的antlr-2.7.2.jar。

 

所以,最后小结如下:

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

 

myEclipse的目录分两大类,一类是工作目录,一类是系统目录,而上述的包就放在系统目录中


【解决方法三:myeclipse菜单】

找到个更简单的方法

当在几种框架集成的时候,在调用HibernateDaoSupport中的某个方法时会出现:

 

java.lang.NoSuchMethodError:antlr.collections.AST.getLine()I 的错误。这是因为在struts2自带的

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

 

需要换成antlr-2.7.6.jar。其实在项目中已经存在了antlr-2.7.6.jar这个包,现在唯一需要做的就是删除

antlr-2.7.2.jar包。

 

选择windows---preferences---在文本框中搜索struts 2(中间有空格)---选择struts 2---选择antlr-

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


【备注:Myeclipse整合struts2+hibernate+spring的重复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包重复,可以删除重复jar包,但要注意版本问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

25 张图,1.4 w字!彻底搞懂分布式事务原理

本文提纲如下:0. 前言1. 单数据源事务 & 多数据源事务2. 常见分布式事务解决方案2.1. 分布式事务模型2.2. 二将军问题和幂等性2.3. 两阶段提交(2PC) & 三阶段提交(3PC)方案2.4. TCC 方案2.5. 事务状态表方案2.…

tableau使用事项

解决加载地图失败问题 如何使用mapbox

des加密密码补位_密码学中的数据加密标准(DES)

des加密密码补位This is a Data Encryption Standard that is the asymmetric key generation for the encryption of digital data in cryptography. Therefore, its short key length of 56 bits of character criticized from the beginning or starting makes it too insec…

解决screen Cannot open your terminal '/dev/pts/1'问题

转载于:http://urchin.blog.51cto.com/4356076/1153322 问题描述: userA首先登录系统,使用screen开启了一个session,然后detach这个窗口。 userB然后登录系统,通过su - userA 变成userA,然后使用screen -r 恢复之前det…

报告老板:这次的缓存事故是这样的...

事故背景公司最近安排了一波商品抢购活动,由于后台小哥操作失误最终导致活动效果差,被用户和代理商投诉了。老板让我带同事们一起复盘这次线上事故。什么原因造成的?抢购活动计划是零点准时开始,22:00 运营人员通过后台…

Oracle测试题

--1、oracle如何得知需要创建的控制文件的信息? --答:从初始化参数文件中读取--创建数据库时,系统会根据初始化参数文件中CONTROL_FILES的设置创建控制文件。--2、一个数据库至少几个控制文件?--答:一个--3、数据字典…

Jpa的@Id和@GeneratedValue的使用

Jpa的Id和GeneratedValue的使用 import lombok.Data; import javax.persistence.*; import java.math.BigInteger;Entity//将实体类首字母小写 Table(name "user")//要连接的数据库表名 Data public class UserCopy {IdGeneratedValue(strategy GenerationType.IDE…

基于Python的应用程序的虚拟环境

什么是虚拟环境? (What is Virtual Environment?) Virtual environments are very useful when the application requires a separate environment, each using its version of python and libraries for execution. Similar to virtual environment, there are pa…

隐式转换

2019独角兽企业重金招聘Python工程师标准>>> 1:隐式转换应用 1.1 隐式转换为期望类型 隐式转换为期望类型是编译器会使用隐式操作的第一个地方。一旦编译器看到了X,但是需要Y,就会检查从X到Y的隐式转换函数。例如: val…

双“11”搞促销?用贪心算法来盘他!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)这几年商家为了刺激消费是变着花样的推出各种各样的活动,以某多多为首的运营式电商更是让我们看到了营销的无限“…

java保留两位小数4种方法

转自: http://blog.csdn.net/ming1683/article/details/31950584种方法,都是四舍五入,例:import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public class format {double f 111231…

AndroidStudio使用入门

AndroidStudio使用入门1_AndroidStudio activity的基本使用1.1_MainActivity和activity_main的初识1.2_Activity的清单文件简介1.3_几种重要文件的介绍1.4_基本布局的认识与使用1.4.1_RelativeLayout(相对布局)1.4.2_线性布局2_访问资源的方式2.1_java访问资源的方式2.2_xml访问…

java计算时间差距_硬计算和软计算之间的差异

java计算时间差距什么是计算? (What is Computing?) The process of accomplishing a particular task with the help of a computer or a computing device is known as computing. It should provide precise and accurate solutions, also it makes easy to fin…

主键字母自动生成函数

-- 动态生成字母方式主键,A-Z 大于Z自动进位【26进制数值表示】-- 参数:动态查询表和主键列 create or replace function charkey (tabName char, pkName char) return char asv_key varchar2(4); -- 表中查询出当前主键列最大值v_char varchar2(…

26.颜色值缩写

关于颜色的css样式也是可以缩写的,当你设置的颜色是16进制的色彩值时,如果每两位的值相同,可以缩写一半。 例子1: p{color:#000000;} 可以缩写为: p{color: #000;} 例子2: p{color: #336699;} 可以缩写为&a…

面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景?

前言生活中用到的锁,用途都比较简单粗暴,上锁基本是为了防止外人进来、电动车被偷等等。但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃格瓦拉」面前,锁就是形同虚设,只要他愿意,他就可以轻轻松…

计算机操作系统原理教程与实训(目录)

计算机操作系统原理教程与实训 第一章 计算机操作系统概论 1.1 操作系统的形成与发展 1.1.1 人工操作方式 1.1.2 脱机输入/输出技术 1.1.3 批处理技术 1.1.4 多道程序设计技术 1.2 操作系统的基本概念 1.2.1 操作系统的定义 1.2.2 操作系统的地位 1.2.3 操作系统的特征 1.2…

2万字,看完这篇才敢说自己真的懂线程池!

前言 线程池可以说是 Java 进阶必备的知识点了,也是面试中必备的考点,可能不少人看了一些文章后能对线程池工作原理说上一二,但这还远远不够,如果碰到比较有经验的面试官再继续追问,很可能会被吊打,考虑如下…

西南大学校园GIS平台

原文:西南大学校园GIS平台系统架构是B/S,开发语言是C#、silverlight,开发平台是.NET,数据库为sqlserver,这是我读研究生时候自己做的作品,以自己的母校为地图,进行GIS相关的功能分析,核心的模块有&#xff…

Android studio小问题解决

1_代码识别不出来问题 2_项目SDK与本地不匹配 先查看项目的SDK 增加本地SDK