`
snsssjsj
  • 浏览: 34393 次
  • 性别: Icon_minigender_1
  • 来自: 自由
社区版块
存档分类
最新评论

NoSuchMethodError: antlr.collections.AST.getLine()

 
阅读更多
内容摘自老师写的教学文档,能解决问题,分享给大家参考


NoSuchMethodError: antlr.collections.AST.getLine()

产生这一问题的原因在于Struts2和Hibernate共存时有两个名为“antlr-2.7.2.jar”和“antlr-2.7.6.jar”的文件因为版本问题导致冲突,Struts2用的是低版本,Hibernate必须用高版本。好在Struts2也能使用高版本的“antlr-2.7.6.jar”文件,因此我们需要在Struts2中把低版本的文件移除掉。
在“UsersCenter”项目里面的“Struts2 Core Libraries”上点击鼠标右键,选择弹出菜单中的“Build Path”->“Remove from Build Path”,将现有使用的Struts2库文件从项目中移除。

把Struts2的库文件从项目中去掉之后,UsersCenter项目马上出现了若干个错误,这是正常的现象,等一会儿我们再把正确的Struts2库文件加回去,错误提示就会消失

点击MyEclipse的主菜单“Window”->“Preferences”,在出现的窗体左侧选择“MyEclipse”->“Project Capabilities”->“Struts2”,并选中右侧下拉框中的“Struts 2 Core Libraries”。

鼠标点击选中库文件列表中的“antlr-2.7.2.jar”项,然后点击“Remove”将其删除(当然,如果你一不小心删除了的话,可以点击窗体右下角的“Restore Defaults”来还原,再次删掉antlr-2.7.2.jar即可),然后点击“Apply”按钮以使修改生效,最后点击“OK”按钮关闭即可。
接下来在项目“UsersCenter”上点击鼠标右键,选择弹出菜单中的“Build Path”->“Add Libraries”。

选中“MyEclipse Libraries”项。

在下面的窗体中,找到“Struts 2 Core Libraries”并勾选它,点击“Finish”按钮结束添加以前移除的Struts2库

经过上面的步骤,UsersCenter项目中的“Struts2 Core Libraries”文件列表中就没有了“antlr-2.7.2.jar”项。

别着急运行项目,正是因为前面我们运行过一次项目,导致Tomcat下面已经存在“antlr-2.7.2.jar”文件,尽管重新设置过项目中用到的Struts2核心库文件,但自动发布到Tomcat目录下面的这个低版本的文件还在,需要我们手工进行删除。
在MyEclipse中,找到下面的“Servers”视图,鼠标右键点击“UsersCenter”项,选择弹出菜单中的“Remove deployment”

好了,现在运行应该是没有问题的。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics