简体   繁体   English

Hibernate,Weblogic 12c部署错误

[英]Hibernate, weblogic 12c deployment error

I am trying to deploy a .war on weblogic 12c and I get the following error: weblogic console error : 我试图在weblogic 12c上部署.war,但出现以下错误:weblogic控制台错误:

An error occurred during activation of changes, please see the log for details. 
Error org.hibernate.HibernateException: Errors in named queries: 
getAuditTaskById, getAllAuditTasksByUser, getAllAuditTasks 
Error Substituted for missing class org.hibernate.HibernateException - 
Errors in named queries: getAuditTaskById, getAllAuditTasksByUser, getAllAuditTasks

I have tried to filter class path by changing weblogic.xml : 我试图通过更改weblogic.xml来过滤类路径:

    <container-descriptor>
      <!-- prefer-web-inf-classes>true</prefer-web-inf-classes-->
      <prefer-web-inf-classes>false</prefer-web-inf-classes>   
    <prefer-application-packages>
      <package-name>org.hibernate.*</package-name>
      <package-name>org.apache.*</package-name>
      <package-name>antlr.*</package-name>
    </prefer-application-packages>

  </container-descriptor>

I am using hinernate-commons-annotations-4.0.2.Final.jar, hibernate-core-4.2.12.Final.jar , hibernate-entitymanaget-4.2.12.Final.jar . 我正在使用hinernate-commons-annotations-4.0.2.Final.jar,hibernate-core-4.2.12.Final.jar,hibernate-entitymanaget-4.2.12.Final.jar。 Any suggestion will be appreciated. 任何建议将不胜感激。 Here is complete error log: 这是完整的错误日志:

    <Apr 22, 2015 3:29:19 PM IRDT> <Warning> <Deployer> <BEA-149004> <Failures were
detected while initiating deploy task for application "benefits40".>
<Apr 22, 2015 3:29:19 PM IRDT> <Warning> <Deployer> <BEA-149078> <Stack trace fo
r message 149004
weblogic.application.ModuleException: org.hibernate.HibernateException: Errors i
n named queries: getAuditTaskById, getAllAuditTasksByUser, getAllAuditTasks
        at weblogic.application.internal.ExtensibleModuleWrapper.prepare(Extensi
bleModuleWrapper.java:114)
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(Modu
leListenerInvoker.java:100)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleSta
teDriver.java:175)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleSta
teDriver.java:170)
        at weblogic.application.utils.StateMachineDriver$ParallelChange.run(Stat
eMachineDriver.java:80)
        Truncated. see log file for complete stacktrace
Caused By: org.hibernate.HibernateException: Errors in named queries: getAuditTa
skById, getAllAuditTasksByUser, getAllAuditTasks
        at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.j
ava:532)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.jav
a:1797)
        at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactor
yImpl.java:96)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Con
figuration.java:914)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Con
figuration.java:899)
        Truncated. see log file for complete stacktrace
>
<Apr 22, 2015 3:29:19 PM IRDT> <Error> <Console> <BEA-240003> <Administration Co
nsole encountered the following error: weblogic.application.ModuleException: org
.hibernate.HibernateException: Errors in named queries: getAuditTaskById, getAll
AuditTasksByUser, getAllAuditTasks
        at weblogic.application.internal.ExtensibleModuleWrapper.prepare(Extensi
bleModuleWrapper.java:114)
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(Modu
leListenerInvoker.java:100)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleSta
teDriver.java:175)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleSta
teDriver.java:170)
        at weblogic.application.utils.StateMachineDriver$ParallelChange.run(Stat
eMachineDriver.java:80)
        at weblogic.work.ContextWrap.run(ContextWrap.java:40)
        at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
gWorkManagerImpl.java:548)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
Caused by: java.lang.Throwable: Substituted for missing class org.hibernate.Hibe
rnateException - Errors in named queries: getAuditTaskById, getAllAuditTasksByUs
er, getAllAuditTasks
        at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.j
ava:532)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.jav
a:1797)
        at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactor
yImpl.java:96)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Con
figuration.java:914)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Con
figuration.java:899)
        at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFa
ctory(HibernatePersistence.java:76)
        at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerF
actory(BasePersistenceUnitInfo.java:461)
        at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerF
actory(BasePersistenceUnitInfo.java:454)
        at weblogic.persistence.BasePersistenceUnitInfo.init(BasePersistenceUnit
Info.java:141)
        at weblogic.persistence.BaseJPAIntegrationProvider.createPersistenceUnit
Info(BaseJPAIntegrationProvider.java:54)
        at weblogic.persistence.AbstractPersistenceUnitRegistry.storeDescriptors
(AbstractPersistenceUnitRegistry.java:423)
        at weblogic.persistence.AbstractPersistenceUnitRegistry.loadPersistenceD
escriptors(AbstractPersistenceUnitRegistry.java:130)
        at weblogic.persistence.ModulePersistenceUnitRegistry.<init>(ModulePersi
stenceUnitRegistry.java:61)
        at weblogic.servlet.internal.WebAppInternalModuleExtension$PersistenceEx
tension.setupPersistenceUnitRegistry(WebAppInternalModuleExtension.java:267)
        at weblogic.servlet.internal.WebAppInternalModuleExtension$PersistenceEx
tension.access$400(WebAppInternalModuleExtension.java:188)
        at weblogic.servlet.internal.WebAppInternalModuleExtension.prePrepare(We
bAppInternalModuleExtension.java:58)
        at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateCha
nge.next(ExtensibleModuleWrapper.java:293)
        at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateCha
nge.next(ExtensibleModuleWrapper.java:285)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD
river.java:42)
        at weblogic.application.internal.ExtensibleModuleWrapper.prepare(Extensi
bleModuleWrapper.java:109)
>

As it says in the error: 正如错误中所说:

Error org.hibernate.HibernateException: Errors in named queries:
getAuditTaskById, getAllAuditTasksByUser, getAllAuditTasks 

You have error in the JPQL in your named queries defined on top of some of your entities. 在某些实体顶部定义的命名查询中,JPQL中存在错误。 If you dont know where those queries are defined, simply search your code files for the getAuditTaskById, getAllAuditTasksByUser... text, and fix the queries. 如果您不知道这些查询的定义位置,只需在代码文件中搜索getAuditTaskById, getAllAuditTasksByUser...文本,然后修复查询即可。

Finally I figured it out. 终于我明白了。 There was a problem with my persistence.xml file. 我的persistence.xml文件出现问题。 I was using this: 我正在使用这个:

<property name="hibernate.query.factory_class" value="org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory" />

This uses the old hql parser, which is for hibernate 2.1 (or some version like that) and older versions. 这使用了旧的hql解析器,该解析器用于hibernate 2.1(或类似的版本)和旧版本。 For newer versions of hibernate core, you must use this: 对于较新版本的hibernate core,必须使用以下命令:

<property name="hibernate.query.factory_class" value="org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory" />

Or do not write anything for this property, and by default, ASTQueryTranslatorFactory will be chosen. 或不要为此属性写任何东西,默认情况下,将选择ASTQueryTranslatorFactory。 I was using hibernate core 4.2.x , and some jar files from jbpm 6 that use some queries that ClassicQueryTranslatorFactory was unable to pars. 我正在使用hibernate core 4.2.x和jbpm 6中的一些jar文件,这些文件使用一些ClassicQueryTranslatorFactory无法解析的查询。 Note that if you have to use ClassicQueryTranslatorFactory alongside newer versions of hibernate core, it is possible to config hibernate so that it use this version of hql parser. 请注意,如果必须将ClassicQueryTranslatorFactory与较新版本的hibernate核心一起使用,则可以配置hibernate,使其使用此版本的hql解析器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM