解决WebLogic12C与项目中jar包冲突

环境配置:weblogic12C     Struts2.1.8+Spring2.5+Hibernate 3.3 

问题描述:项目在tomcat7下运行正常,但部署在WebLogic12C下运行时,就有如下异常: 

ClassNotFoundException: org.hibernate.hql.ast.HqlToken

语法解析器异常,提示找不到指定的Class



产生以上问题的原因是WebLogic为了去分析EJBQL,带有自己的Antlr.jar包,与项目中Hibernate的Antlr.jar包有冲突。



解决以上问题思路是让JVM优先加载web项目的antlr.jar包,而不是weblogic自带的较低版本的antlr.jar包。


一、如果是在MyEclipse中启动:

在MyEclipse的Preferences->Server->WebLogic->WebLogic10.x配置

展开Paths,在Prepend to classPath,将web项目lib目录下的antlr-2.7.6.jar包加入:
解决WebLogic12C与项目中jar包冲突_第1张图片

通过上面配置,启动WebLogic,问题解决。




二、如果是直接启动WebLogic部署,只需要在项目的WEB-INF/WebLogic.xml文件中添加

[html] view plain copy
  1. <prefer-web-inf-classes>trueprefer-web-inf-classes>  
配置:

weblogic.xml 




	
		false
		
		-1
		true
		true
	

	
		
		true
		
		
		-1
	
	
	/




问题得到解决。



用第二种办法,可以代替第一种。

转载自:http://blog.csdn.net/greensurfer/article/details/7559969


你可能感兴趣的:(weblogic,weblogic)