1

我正在使用 Hibernate 4.1.5.SP1,在旧的 JBoss 4.2.2 服务器上运行(无法更改我正在运行的服务器)。Hibernate 使用的 jboss-logging 类与 JBoss 4 附带的默认日志类不兼容。因此,鉴于以下 Maven (3.0.3) 依赖项,

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.2.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>
    </dependency>

我收到以下运行时错误...</p>

javax.ejb.EJBTransactionRolledbackException: java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/    String;)Ljava/lang/Object;  
        at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)  
        at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)  
        at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)  
        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)  
        at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)  
        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)  
        at org.jboss.ejb3.mdb.MessagingContainer.localInvoke(MessagingContainer.java:249)  
        at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery(MessageInflowLocalProxy.java:268)  
        at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:138)  
        at $Proxy121.execute(Unknown Source)  
        at org.jboss.resource.adapter.quartz.inflow.QuartzJob.execute(QuartzJob.java:57)  
        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)  
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)  
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/    lang/Object;  
        at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:174)  
        at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)  
        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)  
        at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)  
        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)  
        at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)  
        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)  
        at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)  
        ... 11 more  
    Caused by: java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;  
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.<clinit>(BeanValidationIntegrator.java:53)  
        at org.hibernate.integrator.internal.IntegratorServiceImpl.<init>(IntegratorServiceImpl.java:46)  
        at org.hibernate.service.internal.BootstrapServiceRegistryImpl.<init>(BootstrapServiceRegistryImpl.java:80)  
        at org.hibernate.service.internal.BootstrapServiceRegistryImpl.<init>(BootstrapServiceRegistryImpl.java:57)  
        at org.hibernate.service.ServiceRegistryBuilder.<init>(ServiceRegistryBuilder.java:76)  
        at org.mainco.subco.dido.service.AbstractServiceProvider.getSessionFactory(AbstractServiceProvider.java:67)  
        at org.mainco.subco.dido.service.AbstractServiceProvider.initServices(AbstractServiceProvider.java:118)  
        at org.mainco.subco.dido.quartz.ProcessOrdersJob.execute(ProcessOrdersJob.java:79)  
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
        at java.lang.reflect.Method.invoke(Method.java:597)  
        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)  
        at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166

任何人都知道如何重新配置​​我的 Hibernate 4 日志记录设置以与这个旧服务器兼容?谢谢, - 戴夫

4

0 回答 0