ANTLR, 语言识别的另一个工具(ANother Tool for Language Recognition),( 前身是 PCCTS)是一种语言工具,它提供了一个框架,可以通过包含Java,C++,或C#动作的语法描述来构造语言识别器,编译器和解释器。计算机语言的解释已经变成了一种非常普遍的工作。传统的计算机语言的编译器和工具(如C或Java)仍旧需要被构造,它们的数量与需要开发的那些成千上万的小语言的识别工具和解释工具相比是相形见拙。程序员为了解析数据格式,图形文件(如,PostScript,AutoCAD),文本文件(如,HTML,SGML等)而需要构造解释器。ANTLR 被设计出来处理所有这些转换工作。
一、问题描述
java.lang.NoSuchFieldError: ruleMemo org.springframework.expression.spel.generated.SpringExpressionsParser.(SpringExpressionsParser.java:94) org.springframework.expression.spel.internal.SpringExpressionsParserExtender.(SpringExpressionsParserExtender.java:30) org.springframework.expression.spel.SpelExpressionParser.(SpelExpressionParser.java:52) org.springframework.context.expression.StandardBeanExpressionResolver.(StandardBeanExpressionResolver.java:40) org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:442) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353) org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139) org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:83) org.apache.jsp.Message_jsp._jspService(Message_jsp.java:70) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
如果使用的是Spring 3.0M1,就可能会遇到这个问题。It seems that 3.0.M1 was built against some intermediate build of ANTLR 3.0. The fisheye repo for ANTLR shows that ruleMemo vanished from the BaseRecognizer class back in 2007.[引用:]
二、解决方法
从下载,添加到工程的lib中,重启tomcat,com.springsource.org.antlr-3.0.1.jar上述问题暂时解决。
阅读(5638) | 评论(1) | 转发(0) |