关于如何处理MyEclipse中struts2与Hiber 3中antlr-2.7.2.jar与antlr-2.7.6包冲突的问题

在学习SSH时,使用MyEclipse8.5以上版本遇到java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误,原因是Struts自带的antlr-2.7.2.jar与Hibernate3.3自带的antlr-2.7.6.jar版本冲突。解决方法是右键点击Struts,选择“Build Path->Configure Build Path..”,去掉antlr-2.7.2.jar包的项目特定高级配置。
摘要由CSDN通过智能技术生成
        

 

        学习SSH,使用MyEclipse8.5以上的版本常常会出现如下的错误:

java.lang.NoSuchMethodError:antlr.collections.AST.getLine()I

       org.hibernate.hql.ast.HqlSqlWalker.generatePositionalParameter(HqlSqlWalker.java:876)

       org.hibernate.hql.antlr.HqlSqlBaseWalker.parameter(HqlSqlBaseWalker.java:4819)

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

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

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

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

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

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

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

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

       org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:231)

       org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:162)

       org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:113)

       org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)

       org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)

       org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)

       org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)

       org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)

       org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1624)

       org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:914)

       org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:1)

       org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)

       org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)

       org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912)

       org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:908)

       com.ssh.dao.impl.UserDAO.findByProperty(UserDAO.java:96)

       com.ssh.dao.impl.UserDAO.findByUsername(UserDAO.java:108)

       com.ssh.service.impl.UserService.getUserByUsername(UserService.java:22)

       com.ssh.struts.action.BaseAction.execute(BaseAction.java:48)

       sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)

       sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

       sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

       java.lang.reflect.Method.invoke(Method.java:606)

       com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)

       com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)

       com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)

       com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)

       org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)

       com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)

       com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)

       com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)

       com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)

       com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

       org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)

       org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)

       org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)

       org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

   这个错误是因为Struts自带的antlr-2.7.2.jar,比Hibernate3.3自带的antlr-2.7.6.jar的版本要低,发生包冲突,程序找不到那个类方法。网上很多人提出了一些解决办法,我认为都很麻烦,这里提供一个非常方便的解决办法。

右键点击Struts,选择“Build Path->Configure Build Path..”,弹出对话框

如图选择Struts 2.1 libraries,点击右边的Edit…按钮,弹出对话框:

如上图,勾选Enable projectspecific advanced configuration,就可以去掉antlr-2.7.2.jar包了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值