org.hibernate.hql.ast.HqlToken weblogic10异常

在hibernate3中需要用到antlr,然而这个包在weblogic.jar中已经包含了antrl类库,就会产生一些类加载的错误,无法找到在war或者ear中的hibernate3.jar。
出现这个错误之后,antlr会调用System.exit(),这样weblogic就会中止服务。
jar包冲突是普通的jar包还是bundle。
应该是这样的:在jar包中定义好了依赖的jar及其版本。而jar包冲突的原因有可能是因为:
1。使用了高版本的。eclipse中使用jar包(Eclipse里安装的jar全是bundle)有个机制,就是高版本优先。例如你有两个版本,1.0和2.0,同时装进去的时候有可能使用的是2.0,而这么高的版本,或许又会依赖高版本的其他jar包,你本身的环境又不存在,因此会出问题。
2。还有个原因有可能是你在使用jar包的时候使用的版本不匹配。当调用jar包中的方法的时候,有可能会不存在这个方法而报错。这种情况经常发生在版本变动较大的情况
目前我就想出了这两点可能的原因

尤其是第一点,这个和类加载的关系不太大吧,加载的就是高版本的jar,低版本的加载不进去
<!--End_rbody_68409914//-->
 

 

http://www.iteye.com/problems/63567

感谢帮助,后经研究,只能通过自定义ClassLoader实现,对于javax.management包下的类,优先通过自定义的ClassLoader到指定JAR中去加载即可,其余委托给父类加载器加载

Java自定义的类加载器

 

http://www.oschina.net/code/snippet_107039_6272

你可能感兴趣的:(Hibernate)