小弟我在 Mysql下连接池做了一个ConnectionDB类,运行没错,可是通过JSP页面调用时就出现了 ClassCastException异常,请教怎么解决??
我的代码如下:
import java.util.Hashtable;
import javax.naming.*;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import java.sql.*;
import javax.sql.*;
class ConnectionDB {
public ConnectionDB() {
}
public static Connection getConnection(String sourceName){
Connection con=null;
Hashtable ha=new Hashtable();
//映射名字
ha.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory") ;
try {
//初始化上下文
Context context = new InitialContext(ha);
//重新得到对象的名字
ConnectionPoolDataSource poolSource=
(ConnectionPoolDataSource)context.lookup(sourceName);
//建立一个数据库用于连接池
PooledConnection pool=poolSource.getPooledConnection();
//建立连接,并返回对象的句柄用于本对象的描述
con=pool.getConnection();
}
catch (NamingException ex) {
ex.printStackTrace() ;
}catch(SQLException ex){
ex.printStackTrace() ;
}
return con;
}
public static void main(String arg[]){
Hashtable hash=new Hashtable();
//映射名字
hash.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory") ;
MysqlDataSource ds=new MysqlDataSource();
String server="localhost";
String sourceName="jdbcPool/msg";
int port=3306;
String user="root";
String password="";
String dataBaseName="yatian";
ds.setServerName(server);
ds.setPortNumber(port);
ds.setUser(user);
ds.setPassword(password);
ds.setDatabaseName(dataBaseName);
try {
//初始化上下文
Context context = new InitialContext(hash);
//绑定对象的名字
context.rebind(sourceName,ds);
context.close();
}
catch (NamingException ex) {
ex.printStackTrace() ;
}
}
}
我调试了一下,到
ConnectionPoolDataSource poolSource=
(ConnectionPoolDataSource)context.lookup(sourceName);这段代码时就出现了那个
"对象转换成没有实例的子类时的"异常了, 谁能帮我解决呀,急急!!!