尝试查找XADataSource时出现ClassCastException

时间:2016-12-12 14:18:22

标签: java jdbc websphere

我有一个servlet WebSphere 8.5,我正在尝试查找XADataSource。但是,我得到了这个例外:

java.lang.ClassCastException: com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource incompatible with javax.sql.XADataSource"

这是我查找数据源的方式:

private String getName(String fromCls, String listCls, String id ) throws Exception {
  InitialContext ctx = new InitialContext();
  // ClassCastException happens here
  XADataSource ds = (XADataSource)ctx.lookup("jdbc/DBXA");

  XAConnection dsxaconn = ds.getXAConnection();
  Connection con = dsxaconn.getConnection();
  // ...
}

1 个答案:

答案 0 :(得分:2)

这很容易让人感到困惑。 XADataSource仅供应用程序服务器在内部使用。

在您的应用程序代码中,您应该只使用javax.sql.DataSource,并在WebSphere配置中选择XADataSource(您可能已经这样做过)。

当您的DataSource配置为XADataSource时,当类型配置为XADataSource时,应用程序服务器将自动调用getXAConnection().getConnection()