MyIgnorance 2012-05-05
java.lang.NoClassDefFoundError:antlr/ANTLRException[color=red][/color]
使用Spring+Hibernate的HibernateDaoSupport的getHibernateTemplate().find(HQL)进行查询时,总是报这样的错误:
java.lang.NoClassDefFoundError:antlr/ANTLRException
开始没有注意到这个,只看下面的详细情况.结果调试了两天还是不行.没办法,搜索了一下antlr/ANTLRException,结果发现是少了antlr-2.7.5H3.jar包
下面说说SSH中Hibernate所需要的包
Hibernate3.2核心包作用
包作用说明
jta.jar标准的JTAAPI必要
commons-logging.jar日志功能必要
commons-collections.jar集合类必要
antlr.jarANotherToolforLanguageRecognition(antlr)必要
dom4j.jarXML配置和映射解释器必要
Hibernate3.jar核心库必要
asm.jarASM字节码库如果使用“cglib”则必要
asm-attrs.jarASM字节码库如果使用“cglib”则必要
ehcache.jarEHCache缓存如果没有其它的缓存,则它是必要的
cglib.jarCGLIB字节码解释器如果使用“cglib”则必要
以下包可选
versioncheck.jar版本检查
swarmcache.jar
jboss-cache.jarTreeCache
jgroups.jar
xml-apis.jarJAXPAPI
c3p0-0.9.1.jarC3POJDBC链接池
connector.jarJCAAPI
jboss-system.jar使用TreeCache时必要
jacc-1_0-fr.jarJACC库
checkstyle-all.jar
junit.jar
javassist.jarJavassist字节码解释器
ant-lanuncher.jar
jaas.jarJAASAPI
jdbc2_0-stdext.jarJDBC扩展API
ant-antlr.jarAntantlr支持
jboss-jmx.jar
cleanimports.jarcleanimports
xerces.jarSAXparserJDK版本低于1.4时必要
jaxen-1.1-beta-7.jarJaxen如果想提高启动性能则去使用
ant-junit.jarAntjunitsupport
ant-swing.jarantswingsupport
ant.jar
proxool.jarProxoolJDBC连接池
concurrent.jar使用TreeCache需要
syndiag2.jar
总结:
最小必要包为antlr.jar,cglib.jar,asm.jar,asm-attrs.jar,commons-collections.jar,commons-loggins.jar,encache.jar,dom4j.jar,log4j.jar,jta.jar