日期:2014-05-19  浏览次数:20805 次

部署在tomcat上可以运行但webLogic不可以
小弟今天刚学习webLogic的部署应用,在我把webLogic部署到myeclipse后,运行却出了如下异常:
Java code

    SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [zip:C:/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/_appsdir_MovieManager_dir/7dovad/war/WEB-INF/lib/slf4j-nop-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [zip:C:/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/_appsdir_MovieManager_dir/7dovad/war/WEB-INF/lib/slf4j-nop-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
执行from MovieType语句时出现错误:ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from cn.jbit.entity.MovieType]




在网上找了很久都没有找到合适的解决方案,如果哪位高手能不吝赐教,在下感激不尽,并且全分送上!

哦对了,注明一点:我的项目使用了hibernate3.x 是不是和hibernate有关系?

------解决方案--------------------
ClassNotFoundException: org.hibernate.hql.ast.HqlToken 解决方法与原因
老问题了,比较常见。将 antlr-2.7.6rc1.jar 放到 jdk的jre/lib/ext目录即可。
 
去网上帮帮你找了下 不只有帮助没


这是因为在Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,需要用到antlr,然而这个包在weblogic.jar中已经包含了较早版本的antrl包,不能兼容,就会产生一些类加载的错误,出现ClassNotFoundException: org.hibernate.hql.ast.HqlToken的异常。
在Hibernate的配置文件中,hibernate.query.factory_class属性用来选择查询翻译器,有如下几种方式:
选择Hibernate3.0的查询翻译器: 
hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
选择Hibernate2.1的查询翻译器 
hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory
为了使用3.0的批量更新和删除功能,只能选择(1)否则不能解释批量更新的语句。
------解决方案--------------------
1楼所说问题发生概率很高。

你的Weblogic是什么版本?

另外,必须是用于启动Weblogic的JDK,你是不是用的是JRockit的JVM?