JBOSS部署在oracle主要版本11上有HibernateException

rak*_*sja 4 java oracle hibernate dialect jboss-4.2.x

尝试使用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>
Run Code Online (Sandbox Code Playgroud)

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"/>
Run Code Online (Sandbox Code Playgroud)

在部署期间获得了以下记录器信息,我不确定为什么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)
Run Code Online (Sandbox Code Playgroud)

注意:我们使用的是JBoss-Seam-2.2.0.GA

试过:这个,这个那个

如果需要任何其他信息,请告诉我,我正试图将jboss中提供的库恢复到耳朵.

更新:尝试

  1. 想出应用程序正在使用2个不同的会话,并且
    还有一个hibernate.cfg.xml也用于另一个遗留代码,其中没有指定方言.
  2. 所以将Oracle10g方言添加到cfg.xml,它停止抛出上面提到的未知oracle版本错误,但它因为无法加载10gDialect而异常.
  3. 美是两个会话指向相同的数据源.

Vad*_*zim 9

尝试添加

hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
Run Code Online (Sandbox Code Playgroud)

也来JBoss/server/default/deploy/ejb3.deployer/META-INF/persistence.properties.

它适用于JBoss-4.2.3.GA捆绑的Hibernate 3.2.4.sp1和ojdbc5 11.1.0.6.0(都在JBoss全局库中).

更新

还要重新检查在classpath中某处不存在旧版本的hibernate.

JBoss-Seam-2.2.0.GA发行版捆绑hibernate 3.3.1.GA而Hibernate方言适用于Oracle Database 11g?建议至少Hibernate 3.3.2+ is required for recent JDBC drivers.

JBoss-4.2.3.GA捆绑的Hibernate 3.2.4.sp1可能会有一些现代人员向后移植.