2017-07-12 2 views
-1

J'ai déjà configuré oracle xadatasource dans websphere, et je veux obtenir la source de données en utilisant la recherche de contexte de printemps jndi, exception se produit quand je démarre mon application: WasjdbcDataSource incompatible avec javax.sql.XADataSource. comment puis-je résoudre ce problème?websphere wasjdbcDataSource à XADataSource

+0

Je ne sais pas WasjdbcDataSource mais à partir de votre question je suspecte Il n'implémente pas javax.sql.XADataSource. Si vous ne trouvez pas de WasjdbcDataSource conforme à XA, vous pouvez utiliser https://www.atomikos.com/Documentation/NonXaDataSource. –

+0

@PascalLeclercq merci –

Répondre

1

Dans un serveur d'applications Java EE, tel que WebSphere Application Server, même si vous configurez le fichier javax.sql.XADataSource compatible XA, l'application (et Spring) doit toujours utiliser javax.sql.DataSource. Regardez dans la configuration de Spring s'il y a un moyen d'indiquer le type attendu de javax.sql.DataSource plutôt que javax.sql.XADataSource. L'API XADataSource est uniquement destinée à l'utilisation interne du serveur d'applications afin de réaliser une validation en deux phases. L'utilisateur interagit toujours avec javax.sql.DataSource et obtient la possibilité d'inscrire plusieurs ressources dans une seule transaction globale.

+0

vous voulez dire que je devrais jndi comme java.sql.datasource et le convertir en XAdatasource si le printemps ou la configuration manuelle peut. droite? –

+0

Ne pas convertir/cast à XADataSource du tout. Le seul endroit où se référer à javax.sql.XADataSource se trouve dans la définition WebSphere Application Server de la source de données (JDBCProvider si WebSphere traditionnel, ou dataSource/jdbcDriver config si Liberty). Partout ailleurs - Spring, les recherches JNDI, les références de ressources ... doivent toujours se référer à et utiliser comme javax.sql.DataSource. – njr

+0

vous remercie pour cela. Je vais l'essayer –