java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 错误解决

来源:互联网 发布:雷蛇键盘链接mac 编辑:程序博客网 时间:2024/05/02 02:27

 

   错误信息:

 

    Exception in thread "main"java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I

    atorg.hibernate.hql.ast.HqlSqlWalker.generateNamedParameter(HqlSqlWalker.java:915)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.parameter(HqlSqlBaseWalker.java:4764)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1373)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4243)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3725)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1864)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:818)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:604)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:288)

    atorg.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:231)

    atorg.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254)

    atorg.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185)

    atorg.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)

    atorg.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)

    atorg.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)

    atorg.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)

    atorg.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)

    atorg.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)

    atorg.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)

    atcom.zjut.daoImpl.AttachDaoImpl.getAttachById(AttachDaoImpl.java:52)

    attest.testConnect.main(testConnect.java:21)

 

    错误原因:

 

    当在几种框架集成的时候,在调用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包就可以解决该问题。

 

    若是MyEclipse自动导入框架所需要的包,antlr-2.7.2 在 Hibernate3.3 Core Libraries 目录下,antlr-2.7.6在 Struts 2 Core Libraries目录下。

    选择windows---preferences---在文本框中搜索struts 2(中间有空格)---选择struts 2---选择antlr-2.7.2.jar---Remove---OK。

 

0 0
原创粉丝点击