java - 使用 InitialContext 获取 OracleXADataSource

标签 java weblogic jta

我正在开发一个在 WebLogic 10 上运行的应用程序,当然还有 Java。

好吧,问题是我正在使用 oracle.jdbc.xa.client.OracleXADataSource 来管理事务,并且我还尝试使用 InitialContext 设置 OracleXADataSource 对象,如下所示:

     InitialContext ctx = new InitialContext();
     OracleXADataSource oxds = new OracleXADataSource();
     oxds = (OracleXADataSource)ctx.lookup("cbs.db.CBSDataSrc");

但是当我运行应用程序时,这会抛出这个问题:

java.sql.SQLException: Error creando la conexion - weblogic.jdbc.common.internal.RmiDataSource cannot be cast to oracle.jdbc.xa.client.OracleXADataSource

 at cbs.rtc.daos.commons.DatabaseDAO.getXAPersConnection(DatabaseDAO.java:514)
 at cbs.rtc.daos.utils.UtilDAO.startTransaction(UtilDAO.java:95)
 at cbs.rtc.businessobjects.persona.PersonaJuridicaBussinessObject.crearClienteJuridico(PersonaJuridicaBussinessObject.java:366)
 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 cbs.rtc.businessobjects.AbstractBusinessObject.invoke(AbstractBusinessObject.java:61)
 at cbs.commons.business.BusinessInvoker.invokeTarget(BusinessInvoker.java:88)
 at cbs.services.AbstractService.invokeTarget(AbstractService.java:142)
 at cbs.services.AbstractService.invokeTarget(AbstractService.java:195)
 at cbs.services.persona.PersonaJuridicaServiceBean.crearClienteJuridico(PersonaJuridicaServiceBean.java:135)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        ...

任何人都可以告诉我为什么我收到 RmiDataSource 无法转换为 OracleXADataSource 的信息吗?

--编辑-- 根据这个 oracle 示例,代码应该可以工作,不是吗? http://www.oracle.com/technology/sample_code/tech/java/codesnippet/j2ee/jdbc/JDBC_in_J2EE.html

最佳答案

返回的对象是一个RmiDataSource。 OracleXADataSource 既不是 RmiDataSource 的子类也不是父类(super class)。 RmiDataSource 直接或间接与 OracleXADataSource 对话。它可能包含也可能不包含对 OracleXADataSource 的引用。

如果您使用 XA 数据源,则应该使用 JTA 来管理事务。

关于java - 使用 InitialContext 获取 OracleXADataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452671/

相关文章:

java - 使用 List 填充 ListView

java - 在类外部声明的枚举

weblogic - 如何在 Oracle WebLogic Server 中从 ADMIN 状态返回到运行状态

Oracle JDBC 属性

java - 最后资源优化

java - 从 xml 获取正确元素时遇到问题

java - 取消部署 WebLogic 应用程序时自动取消注册 MBean(由 Spring 注册)

spring - JTA/JTS 如何处理事务超时问题?

java - 如何从实体管理器获取 jpa 数据源属性

Java SWT 清除表头