我正在将一个企业app(ear)部署为tomee作为概念验证。我们的应用程序之前在jboss 4中运行,我们正在寻找迁移到JBoss 7或tomee的选项。
我正在使用ejb3和hibernate 3进行POC。这在JBoss 7中工作正常。当我在tomee中部署相同的应用程序时,我在打开hibernate会话时遇到异常。下面是hibernate配置和异常堆栈跟踪。感谢任何帮助。
<property name="connection.datasource">java:openejb/Resource/DS</property>
<property name="connection.pool_size">70</property>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="current_session_context_class">thread</property>
<property name="transaction.manager_lookup_class">org.apache.openejb.hibernate.TransactionManagerLookup</property>
<property name="transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory</property>
<property name="hibernate.transaction.flush_before_completion">true</property>
<property name="hibernate.transaction.auto_close_session">true</property>
</session-factory>
2014年11月20日上午9:28:37 org.apache.openejb.core.transaction.EjbTransactionUtil handleSystemException SEVERE: EjbTransactionUtil.handleSystemException: org.hibernate.SessionFactory.openSession()Lorg /休眠/会话; java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg /休眠/会话;
答案 0 :(得分:0)
当我第二天启动服务器以查看问题时,它抱怨缺少antlr jar文件。我将antlr jar文件添加到tomee lib文件夹,然后Hibernate配置工作没有任何问题。
我不确定为什么它之前没有显示错过的antlr异常,它抛出了上面发布的异常。