尝试在 JBoss-4.2.3.GA 中使用以下设置部署应用程序 ear 文件
jboss-app.xml
<jboss-app>
<loader-repository>
com.xxxx.xxx:loader=<ear-name>
<loader-repository-config>
java2ParentDelegation=false
</loader-repository-config>
</loader-repository>
</jboss-app>
persistence.xml(只是一个片段)
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="false"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/XXXXFactory"/>
在部署期间获得了以下记录器信息,我不确定为什么 INFO 记录器中列出了异常,我可以不为此烦恼吗?
16:30:07,239 INFO [STDOUT] 16:30:07,238 INFO [SettingsFactory] JDBC driver: Oracle JDBC driver, version: 11.2.0.3.0
javax.ejb.EJBException: org.hibernate.HibernateException: unknown Oracle major version [11]
at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
Caused by: org.hibernate.HibernateException: unknown Oracle major version [11]
at org.hibernate.dialect.DialectFactory$1.getDialectClass(DialectFactory.java:135)
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:65)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426)
注意:我们使用的是 JBoss-Seam-2.2.0.GA
如果需要任何其他信息,请告诉我,我正在尝试将 jboss 中可用的库拉回耳朵。
更新:尝试
- 发现应用程序正在使用 2 个不同的会话,并且
有一个 hibernate.cfg.xml 也用于另一个遗留代码,其中没有指定方言。 - 所以将Oracle10g方言添加到cfg.xml,它停止抛出上述未知oracle版本错误,但由于无法加载10gDialect而异常。
- 美是两个会话都指向同一个数据源。