weblogic中oracle数据源 利用JNDI 测试报错:java.lang.Object cannot be cast to java.io.Serial
测试类如下:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class HelloClient {
public static void main(String args[]){
String url = "t3://localhost:7001";
Context initCtx = null;
try{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "username" );
env.put(Context.SECURITY_CREDENTIALS, "password" );
env.put(Context.PROVIDER_URL, url);
initCtx = new InitialContext(env);
System.out.println(initCtx);
}catch(Exception e){
System.out.println("Cannot get initial context: " + e.getMessage());
System.exit(1);
}
try {
DataSource ds = (DataSource) initCtx.lookup("OracleDs");
Connection conn = ds.getConnection();
//System.out.println(conn);
Statement stmt=conn.createStatement();
String sql="select * from net_monitorcamera";
ResultSet rs=stmt.executeQuery(sql);
while (rs.next()){
System.out.println(rs.getObject(1));
}
} catch (NamingException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
}
}
JNDI如下:
此页中显示了有关该绑定对象的详细信息。
绑定名: OracleDs
类: weblogic.jdbc.common.internal.RmiDataSource
散列代码: 24563485
转换为字符串结果: weblogic.jdbc.common.internal
工程中导入了jar包有:
Oracle 10g 10.2.0.3 JDBC_ojdbc14.jar oracle数据库驱动
weblogic.jar
wlclient.jar
我在运行测试类时,在
DataSource ds = (DataSource) initCtx.lookup("OracleDs");
Connection conn = ds.getConnection();报错了,我直接打印ds 看了一下,它不是对象了
而是:IOR:0000000000000044524d493a7765626c6f6769632e6a6462632e636f6d6d6f6e2e......很长的一段
好像是不能转换成DataSource对象
也不知道哪错了
希望哪位高手能帮帮忙,万分感谢!!!!!