Java websphere wasjdbcDataSource到XADataSource

Java websphere wasjdbcDataSource到XADataSource,java,jdbc,websphere,atomikos,Java,Jdbc,Websphere,Atomikos,我已经在websphere中设置了oracle Xadasource,我想通过使用spring上下文查找jndi获取数据源,当我启动我的应用程序时会发生异常:WasjdbcDataSource与javax.sql.Xadasource不兼容。 如何解决这个问题?在Java EE应用服务器(如WebSphere application server)中,即使您配置了支持XA的javax.sql.XADataSource,应用程序(和Spring)也应该始终将其用作javax.sql.DataSou

我已经在websphere中设置了oracle Xadasource,我想通过使用spring上下文查找jndi获取数据源,当我启动我的应用程序时会发生异常:WasjdbcDataSource与javax.sql.Xadasource不兼容。
如何解决这个问题?

在Java EE应用服务器(如WebSphere application server)中,即使您配置了支持XA的javax.sql.XADataSource,应用程序(和Spring)也应该始终将其用作javax.sql.DataSource。查看Spring配置中是否有方法指示javax.sql.DataSource的预期类型,而不是javax.sql.XADataSource。XADataSource API仅用于应用程序服务器自身的内部使用,以完成两阶段提交。用户总是以javax.sql.DataSource的身份与它交互,并获得在一个全局事务中登记多个资源的能力。

我不知道WasjdbcDataSource,但从您的问题来看,我怀疑它没有实现javax.sql.XADataSource。如果找不到任何与XA兼容的WasjdbcDataSource,您可以使用。@PascalLeclercq谢谢您的意思是我应该将jndi看作java.sql.datasource,如果spring或手动配置可以的话,将其转换为XAdatasource。对吗?根本不要将其转换/强制转换为XADataSource。将其称为javax.sql.XADataSource的唯一位置是在数据源的WebSphere Application Server定义中(如果是传统WebSphere,则为JDBCProvider,如果是Liberty,则为dataSource/jdbcDriver config)。其他地方-Spring、JNDI查找、资源引用。。。应始终将其作为javax.sql.DataSource引用和使用。