严重: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
at org.hibernate.hql.antlr.HqlBaseParser.selectClause(HqlBaseParser.java:1391)
at org.hibernate.hql.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1106)
at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:702)
at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:296)
at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:159)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:238)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:155)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at LoginAction.execute(LoginAction.java:36)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
这是我的错误信息,我用的是MyEclipse 6.0.1。
网上说Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar 然后重启 Tomcat.
第一我没用Sping,第2,我WEB-INF/lib/ 里面根本就是空的。没有文件!杂解决?搞定着高分!

解决方案 »

  1.   

    查看下有没有antlr.jar,如果有,则检查先jar的版本
      

  2.   

    看看你的.jar文件,全部加进来没的呀,
      

  3.   

    第2,我WEB-INF/lib/ 里面根本就是空的如果你用的是package explorer的话,lib的文件是被隐藏的,可以在上面的 Referenced Libraries里面找到那些jar包
      

  4.   

    应该是antlr.jar的版本问题
    这个版本的类中缺少提示的方法
      

  5.   

    antlr.jar新的版本似乎是2.7.6吧,检查一下吧
      

  6.   

    没有jar那是因为你没有选择copy到lib目录..而是在buidpath中添加的引用.java.lang.NoSuchMethodError当应用程序试图调用类(静态或实例)的指定方法,而该类已不再具有该方法的定义时,抛出该异常。 通常由编译器捕获该错误;仅当类定义发生不相容的更改时,在运行时才会发生该错误
      

  7.   

    java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover里面提示已经写的很清楚了,你没把jar包引用到项目中撒。
      

  8.   

    应该是类库的冲突,你看一下类库下面有几个antlr.jar,删去。
      

  9.   

    我咋可能会没引用嘛?明显是 冲突撒!我也看了确实有2个ANTLR.JAR,但是删不掉~~一个是STRUCTS的2.7。2版本,一个是HIBERNATE的2.7.6版本,咋弄各位??
      

  10.   

    新建一个项目导Hibernate的时候 同时把jar也copy进去,其实我一直这么做的,想换jar就去目录下把jar删掉在把自己需要的jar在复制进来,然后刷新下自己IED里面的项目就行了,一直这么做的
      

  11.   

    就是jar包的问题·你的包有错误
      

  12.   

    问题是咋删啊?启动MYECLIPCE以后再工程那里删除是灰色的啊~~~
      

  13.   

    哥们,我和你遇到的问题一样的啊,我后来是在myeclipse中自动添加spring和hibernate的jar文件,然后删除hibernate的antlr.jar就可以