Solaris平台 解决weblogic异常:org.hibernate.hql.ast.HqlToken错误

原因:

Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,在Hibernate的配置文件中,hibernate.query.factory_class属性用来选择

 

查询翻译器。

(1)选择Hibernate3.0的查询翻译器:

hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory

(2)选择Hibernate2.1的查询翻译器

hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory

为了使用3.0的批量更新和删除功能,只能选择(1)否则不能解释批量更新的语句,当使用的时候出现了不支持条件输入中文的情况。选择(2)可以支持输入中文,但没法解释批量更新语句了

在hibernate3中需要用到antlr,然而这个包在weblogic.jar中已经包含了antrl类库,就会产生一些类加载的错误,无法找到在war或者ear中的hibernate3.jar。

出现这个错误之后,antlr会调用System.exit(),这样weblogic就会中止服务。

在jBPM4.0中,使用的Hibernate是3.0之后的版本,而从3.0开始就采用了新的基于ANTLR的查询翻译器,在WebLogic中使用的是antlr2.6.1.jar,无法满足该要求,需要从新版本的Hibernate中提取该jar并添加到WebLogic的Classpath中。

解决方法:

a、  拷贝Hibernate3里带的包antlr-2.7.5H3.jar到weblogic目录%DOMAIN_HOME%/lib

--项目中的路径是:/export/home/weblogic/bea/user_projects/domains/EMDMS/lib

b、修改%DOMAIN_HOME%/bin startWebLogic.sh :

在CLASSPATH之前加上下面一句:

PRE_CLASSPATH="/export/home/weblogic/bea/user_projects/domains/EMDMS/lib/antlr-2.7.6.jar"

CLASSPATH="${PRE_CLASSPATH}${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}"

 

--当然,最好使用相对路径,这样迁移比较方便

PRE_CLASSPATH=" ${DOMAIN_HOME}/lib/antlr-2.7.6.jar"

antlr-2.7.5H3.jar包下载地址

http://livedba.itpub.net/resource/42863/31478

报错信息:

[/export/home/weblogic/bea/user_projects/domains/EMDMS/servers/server0/stage/EMDMS/EMDMS/WEB-INF/classes/applicationContext-security.xml]: Cannot resolve reference to bean 'mySecurityMetadataSource' while setting bean property 'securityMetadataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySecurityMetadataSource' defined in file [/export/home/weblogic/bea/user_projects/domains/EMDMS/servers/server0/stage/EMDMS/EMDMS/WEB-INF/classes/applicationContext-security.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [info.catarc.emdms.util.security.MySecurityMetadataSource]: Constructor threw exception; nested exception is org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [From info.catarc.emdms.entity.systemManager.MenuInfo]; nested exception is org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [From info.catarc.emdms.entity.systemManager.MenuInfo]

           at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

           at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

           at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:352)

           at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:153)

           at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)

           at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)

           at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

           at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

           at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

           at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

           at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

           at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

           at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:591)

           at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)

           at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469)

           at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)

           at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)

           at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)

           at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:465)

           at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

           at weblogic.security.service.SecurityManager.runAs(Unknown Source)

           at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:175)

           at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1784)

           at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2999)

           at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371)

           at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468)

           at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)

           at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)

           at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)

           at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)

           at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)

           at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)

           at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)

           at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)

           at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)

           at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)

           at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)

           at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)

           at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:16)

           at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)

           at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)

           at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)

           at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)

           at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)

           at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)

           at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)

           at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)

           at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)

           at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)

           at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)

           at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)

           at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)

           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)

           at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityFilter' defined in file

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26129555/viewspace-1344866/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26129555/viewspace-1344866/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值