我有一个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();
// ...
}
答案 0 :(得分:2)
这很容易让人感到困惑。 XADataSource仅供应用程序服务器在内部使用。
在您的应用程序代码中,您应该只使用javax.sql.DataSource
,并在WebSphere配置中选择XADataSource(您可能已经这样做过)。
当您的DataSource配置为XADataSource时,当类型配置为XADataSource时,应用程序服务器将自动调用getXAConnection().getConnection()
。