Hibernate 在jboss中部署era文件时出错

Hibernate 在jboss中部署era文件时出错,hibernate,jboss7.x,Hibernate,Jboss7.x,我想部署包含4个项目3 war和1.jar的ear文件。jar项目对于war项目来说很常见。在这个项目中,jar项目使用spring和hibernate。当部署到JBoss7上时,war项目正在使用struts获得这些错误 15:11:51,929 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC00001: Failed to start service jboss.persistenceunit."Eyewatch

我想部署包含4个项目3 war和1.jar的ear文件。jar项目对于war项目来说很常见。在这个项目中,jar项目使用spring和hibernate。当部署到JBoss7上时,war项目正在使用struts获得这些错误

15:11:51,929 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC00001: Failed to start service jboss.persistenceunit."EyewatchEar.ear#EW": org.jboss.msc.service.StartException in service jboss.persistenceunit."EyewatchEar.ear#EW": Failed to start service
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: EW] Unable to build EntityManagerFactory
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:162)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:85)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    ... 3 more
Caused by: org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.collection.OneToManyPersister
    at org.hibernate.persister.internal.PersisterFactoryImpl.create(PersisterFactoryImpl.java:248)
    at org.hibernate.persister.internal.PersisterFactoryImpl.createCollectionPersister(PersisterFactoryImpl.java:196)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:375)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
    ... 9 more
Caused by: org.hibernate.HibernateException: Unable to parse order-by fragment
    at org.hibernate.sql.ordering.antlr.OrderByFragmentTranslator.render(OrderByFragmentTranslator.java:66)
    at org.hibernate.sql.Template.renderOrderByStringTemplate(Template.java:696)
    at org.hibernate.persister.collection.AbstractCollectionPersister.<init>(AbstractCollectionPersister.java:558)
    at org.hibernate.persister.collection.OneToManyPersister.<init>(OneToManyPersister.java:85)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_45]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_45]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_45]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [rt.jar:1.7.0_45]
    at org.hibernate.persister.internal.PersisterFactoryImpl.create(PersisterFactoryImpl.java:226)
    ... 14 more
Caused by: java.lang.ClassCastException: antlr.CommonToken cannot be cast to antlr.Token
    at antlr.CharScanner.makeToken(CharScanner.java:173)
    at org.hibernate.sql.ordering.antlr.GeneratedOrderByLexer.mIDENT(GeneratedOrderByLexer.java:238)
    at org.hibernate.sql.ordering.antlr.GeneratedOrderByLexer.nextToken(GeneratedOrderByLexer.java:138)
    at antlr.TokenBuffer.fill(TokenBuffer.java:69)
    at antlr.TokenBuffer.LA(TokenBuffer.java:80)
    at antlr.LLkParser.LA(LLkParser.java:52)
    at org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser.expression(GeneratedOrderByFragmentParser.java:504)
    at org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser.sortKey(GeneratedOrderByFragmentParser.java:325)
    at org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser.sortSpecification(GeneratedOrderByFragmentParser.java:241)
    at org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser.orderByFragment(GeneratedOrderByFragmentParser.java:190)
    at org.hibernate.sql.ordering.antlr.OrderByFragmentTranslator.render(OrderByFragmentTranslator.java:60)
    ... 22 more 
15:11:51929错误[org.jboss.msc.service.fail](msc服务线程1-6)MSC00001:无法启动服务jboss.persistenceunit。“EyewatchEar.ear#EW”:服务jboss.persistenceunit中的org.jboss.msc.service.StartException。“EyewatchEar.ear#EW”:无法启动服务
在org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767)[jboss-msc-1.0.2.GA.jar:1.0.2.GA]
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[rt.jar:1.7.045]
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[rt.jar:1.7.045]
在java.lang.Thread.run(Thread.java:744)[rt.jar:1.7.0_45]
原因:javax.persistence.PersistenceException:[PersistenceUnit:EW]无法生成EntityManagerFactory
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
位于org.hibernate.ejb.HibernatePersistence.createContainerEntityManager工厂(HibernatePersistence.java:73)
位于org.jboss.as.jpa.service.PersistenceUnitServiceImpl.CreateContainerEntityManager工厂(PersistenceUnitServiceImpl.java:162)
位于org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:85)
在org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)[jboss-msc-1.0.2.GA.jar:1.0.2.GA]
在org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)[jboss-msc-1.0.2.GA.jar:1.0.2.GA]
... 3个以上
原因:org.hibernate.MappingException:无法获取org.hibernate.persister.collection.OneToManyPersister的构造函数
位于org.hibernate.persister.internal.PersisterFactoryImpl.create(PersisterFactoryImpl.java:248)
位于org.hibernate.persister.internal.persisterfactorympl.createCollectionPersister(persisterfactorympl.java:196)
位于org.hibernate.internal.sessionfactorympl。(sessionfactorympl.java:375)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
位于org.hibernate.ejb.EntityManagerFactoryImpl。(EntityManagerFactoryImpl.java:84)
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
... 9更多
原因:org.hibernate.HibernateException:无法按片段分析订单
位于org.hibernate.sql.ordering.antlr.OrderByFragmentTranslator.render(OrderByFragmentTranslator.java:66)
位于org.hibernate.sql.Template.renderderByStringTemplate(Template.java:696)
位于org.hibernate.persister.collection.AbstractCollectionPersister。(AbstractCollectionPersister.java:558)
位于org.hibernate.persister.collection.OneToManyPersister.(OneToManyPersister.java:85)
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)[rt.jar:1.7.0\u 45]
在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)[rt.jar:1.7.0\u 45]
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[rt.jar:1.7.045]
在java.lang.reflect.Constructor.newInstance(Constructor.java:526)[rt.jar:1.7.0_45]
位于org.hibernate.persister.internal.PersisterFactoryImpl.create(PersisterFactoryImpl.java:226)
... 14多
原因:java.lang.ClassCastException:antlr.CommonToken无法强制转换为antlr.Token
位于antlr.CharScanner.makeToken(CharScanner.java:173)
位于org.hibernate.sql.ordering.antlr.GeneratedOrderByLexer.mIDENT(GeneratedOrderByLexer.java:238)
位于org.hibernate.sql.ordering.antlr.GeneratedOrderByLexer.nextToken(GeneratedOrderByLexer.java:138)
位于antlr.TokenBuffer.fill(TokenBuffer.java:69)
位于antlr.TokenBuffer.LA(TokenBuffer.java:80)
在antlr.LLkParser.LA(LLkParser.java:52)
位于org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser.expression(GeneratedOrderByFragmentParser.java:504)
位于org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser.sortKey(GeneratedOrderByFragmentParser.java:325)
位于org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser.sortSpecification(GeneratedOrderByFragmentParser.java:241)
位于org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser.orderByFragment(GeneratedOrderByFragmentParser.java:190)
位于org.hibernate.sql.ordering.antlr.OrderByFragmentTranslator.render(OrderByFragmentTranslator.java:60)
... 还有22个
我正在使用JTA,但无法找到哪里出了问题,因此如果有人有解决方案,请提供帮助


感谢您的支持。

我也在使用JBossAS7和Hibernate。在我用@OrderBy注释我的一个实体类字段后,这个错误开始出现

解决方案是删除antlr和/或hibernate,正如James在他的评论中所建议的那样,并让JBoss找到这些依赖项(它们包含在JBoss中)


如果您使用的是Maven,并且对antlr或hibernate有编译时依赖关系,您应该在要编译的依赖关系中添加
提供的
,但不包括在jar文件中。

您可能找到了一个解决方案,但为了将来的参考,这里有一个使用Maven的工作解决方案:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>${hibernate-version}</version>

    <exclusions>
        <exclusion>
            <groupId>antlr</groupId>
            <artifactId>antlr</artifactId>
        </exclusion>
    </exclusions>
</dependency>

org.hibernate
冬眠核心
${hibernate版本}
antlr
antlr

部署中是否包括Hibernate和/或antlr?