websphere wasjdbcDataSource到XADataSource

问题描述:

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

+0

我不知道WasjdbcDataSource,但从你的问题我怀疑它没有实现javax.sql.XADataSource。如果您找不到符合XA标准的WasjdbcDataSource,则可以使用https://www.atomikos.com/Documentation/NonXaDataSource。 –

+0

@PascalLeclercq谢谢 –

在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的方式与它交互,并获得在单个全局事务中登记多个资源的能力。

+0

你的意思是我应该把jndi当作java.sql.datasource,并将它转换成XAdatasource,如果是spring或者手动配置的话。对? –

+0

根本不要将其转换/转换为XADataSource。将其引用为javax.sql.XADataSource的唯一地方位于数据源的WebSphere Application Server定义中(如果是传统WebSphere,则为JDBCProvider,如果为Liberty,则为dataSource/jdbcDriver config)。其他地方 - Spring,JNDI查找,资源引用...应该始终引用并将其用作javax.sql.DataSource。 – njr

+0

感谢你的这个.i会尝试它 –