关于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I异常的解决办法
来源:互联网 发布:误关windows资源管理器 编辑:程序博客网 时间:2024/06/06 05:20
今天在写一个比较简单的学生信息管理系统,采用了Struts2+Hibernate的配置,写完了登录页面之后,开始在浏览器调试,写完用户名和密码点击登录,跳转到Action时,
出现了java.lang.NoSuchMethodError:antlr.collections.AST.getLine()I异常,然后百度之,得知可能的原因是jar包冲突,web.xml 或Struts.xml配置错误,POJO与映射文件不匹配等原因呢,之后一一排除,删除版本较低的jar包,检查DAO操作,倒是找到几处小错误,总之搞了两个多小时都没能解决,然后 开始漫长的syso,发现List list 。。。。。没有执行,执行单元测试发现方法没有问题,于是断定不是类的问题,又回到了jar包冲突中。
用myeclipse自己导的包,出现了包版本冲突问题,问题出在struts包里面有也有个antlr_XXX.jar,与hibernate包里面的冲突了,hibernate的版本高
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自带的,所以删除比较麻烦。
我是直接到workspace中查找下antlr-2.7.2.jar的包,删除之,也可以在MyEclipse下,windows-->preferences-->在文本框中搜索struts2-->选择antlr2.7.2-->remove,
在tomcat中webapps中该应用的目录WEB-INF\lib 删除 antlr2.7.2.jar
之后编译时就会自动找到Hibernate3.3自带的antlr-2.7.6.jar。
问题解决。
System.out.println("为学生");String hql = "select s from Student as s where s.number =? and s.wps=?";System.out.println("为学生3");@SuppressWarnings("rawtypes")List list =this.session.createQuery(hql)//.setString(0, name)//.setString(1, password)//.list();System.out.println(list);System.out.println("为学生3"+list); if(list!=null){System.out.println("为学生4");return true;}System.out.println("asdasdasd");return false;
- 关于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I异常的解决办法
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()异常的解决办法
- 关于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I异常的解决方案
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 异常解决
- 【异常处理】java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
- 异常:java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 解决办法
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 的错误
- 关于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()的错误
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误时的原因及解决办法
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 解决方法
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 错误原因
- reflect.InvocationTargetException java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
- 解决 java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 问题
- 解决 java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 问题
- 错误java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 问题
- Hough变换的原理:
- HDU1009_FatMouse' Trade【贪心】【水题】
- 通过登陆界面进入ubuntu 14.04 的 root。
- Session,Cookie的区别
- 又是一年自考时
- 关于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I异常的解决办法
- 关于nsinteger与负数大小对比判断
- Facebook Graph Search
- 自制应用层协议的编写
- 让rm命令提示确认后再删除
- linux lsof详解
- Hduoj2082 【母函数】
- jquery图片切换
- 最简单的视音频播放示例2:GDI播放YUV, RGB