为什么会有这个错误?dx帮忙看一下喽!Exception in cmtbeanjava.lang.ClassCastException

bluegirl 03-06-30

我写了一个javabean,其中对支持xa的db2进行调用,调用句:
DB2XADataSource ds = (DB2XADataSource)(new InitialContext()).lookup("java:/DB2XADS");
XAConnection con = ds.getXAConnection();
Connection c = con.getConnection();
Statement s = c.createStatement();
ResultSet rs = s.executeQuery("select * from protonaccount");
if(rs.next())
{
name = rs.getString("customer_name");
System.out.println(name);
}
s.close();
con.close();
可是后台抛出:17:41:32,115 INFO [STDOUT] Exception in cmtbeanjava.lang.ClassCastException
的错误,不知道是什么原因???
谢谢!

robbin
2003-06-30 18:57

提示的很明显了呀,对象的强制类型转换错误!

bluegirl
2003-06-30 19:23

谢谢。
那怎么改正呀,请指教。如果强制转换错误为什么编译的时候没有报错。

robbin
2003-06-30 19:50

DB2XADataSource ds = (DB2XADataSource)(new InitialContext()).lookup("java:/DB2XADS");

应该就是这行出错吧,你不能强制转换为DB2XADataSource,我没有用过Webspere,所以不知道该怎么写。是不是应该直接写XADataSource?

因为ctx.lookup出来的对象只有在执行的过程中从JNDI中查出来,并且序列化到客户端程序再反序列化出来以后,你才能确定其类型,所以编译的时候检查不出来。

bluegirl
2003-06-30 20:28

这样写也不行,还是抛出那个错误:
XADataSource ds = (XADataSource)(new InitialContext()).lookup("java:/DB2XADS");
System.out.print("bound to db2");
XAConnection con = ds.getXAConnection();
Connection c = con.getConnection();
Statement s = c.createStatement();

2Go 1 2 下一页