这个是我的程序:
package ch3;
import java.sql.*;import javax.sql.*;
import javax.naming.*;
import java.util.*;
import java.io.*;
public class JNDIPoolDemo {
public static void main(String[] args) {
String tablename = "student";
String sqlstr;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
Context ctx = null;
Hashtable ht = new Hashtable();
try
{
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://localhost:7001");
ctx = new InitialContext(ht);
DataSource ds = (DataSource)ctx.lookup("MyDataSource");
con = ds.getConnection();
stmt = con.createStatement();
sqlstr = "select * from "+tablename;
rs=stmt.executeQuery(sqlstr);
while(rs.next())
{
System.out.print(rs.getString("id"));
System.out.print("\t");
System.out.print(rs.getString("name"));
System.out.print("\t");
System.out.print(rs.getString("age"));
System.out.print("\t");
System.out.print("\n");
}
}
catch(NamingException e1)
{
System.out.println(e1.toString());
System.out.println("驱动程序没有找到!");
}
catch(SQLException e2)
{
System.out.println(e2.toString());
System.out.println("数据库异常!");
}
finally
{
try
{
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(con!=null) con.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
}
执行的时候发生一下错误:
Exception in thread "main" java.lang.ClassCastException: weblogic.jdbc.common.internal.ConnectionEnv
at weblogic.iiop.IIOPOutputStream.writeObject(IIOPOutputStream.java:2209)
at weblogic.utils.io.ObjectStreamClass.writeFields(ObjectStreamClass.java:396)
at weblogic.corba.utils.ValueHandlerImpl.writeValueData(ValueHandlerImpl.java:235)
at weblogic.corba.utils.ValueHandlerImpl.writeValueData(ValueHandlerImpl.java:225)
at weblogic.corba.utils.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:182)
at weblogic.iiop.IIOPOutputStream.write_value(IIOPOutputStream.java:1913)
at weblogic.iiop.IIOPOutputStream.write_value(IIOPOutputStream.java:1948)
at weblogic.iiop.IIOPOutputStream.writeObject(IIOPOutputStream.java:2209)
at weblogic.jdbc.common.internal.RmiDataSource_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
package ch3;
import java.sql.*;import javax.sql.*;
import javax.naming.*;
import java.util.*;
import java.io.*;
public class JNDIPoolDemo {
public static void main(String[] args) {
String tablename = "student";
String sqlstr;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
Context ctx = null;
Hashtable ht = new Hashtable();
try
{
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://localhost:7001");
ctx = new InitialContext(ht);
DataSource ds = (DataSource)ctx.lookup("MyDataSource");
con = ds.getConnection();
stmt = con.createStatement();
sqlstr = "select * from "+tablename;
rs=stmt.executeQuery(sqlstr);
while(rs.next())
{
System.out.print(rs.getString("id"));
System.out.print("\t");
System.out.print(rs.getString("name"));
System.out.print("\t");
System.out.print(rs.getString("age"));
System.out.print("\t");
System.out.print("\n");
}
}
catch(NamingException e1)
{
System.out.println(e1.toString());
System.out.println("驱动程序没有找到!");
}
catch(SQLException e2)
{
System.out.println(e2.toString());
System.out.println("数据库异常!");
}
finally
{
try
{
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(con!=null) con.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
}
执行的时候发生一下错误:
Exception in thread "main" java.lang.ClassCastException: weblogic.jdbc.common.internal.ConnectionEnv
at weblogic.iiop.IIOPOutputStream.writeObject(IIOPOutputStream.java:2209)
at weblogic.utils.io.ObjectStreamClass.writeFields(ObjectStreamClass.java:396)
at weblogic.corba.utils.ValueHandlerImpl.writeValueData(ValueHandlerImpl.java:235)
at weblogic.corba.utils.ValueHandlerImpl.writeValueData(ValueHandlerImpl.java:225)
at weblogic.corba.utils.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:182)
at weblogic.iiop.IIOPOutputStream.write_value(IIOPOutputStream.java:1913)
at weblogic.iiop.IIOPOutputStream.write_value(IIOPOutputStream.java:1948)
at weblogic.iiop.IIOPOutputStream.writeObject(IIOPOutputStream.java:2209)
at weblogic.jdbc.common.internal.RmiDataSource_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
解决方案 »
- 如何删除已经生成的Jar文件里面的某一个类
- JSF复选框分行的问题
- 这个问题怎么处理Missing message for key "errors.header"?
- jboss-app.xml
- 再问一个spring和proxool集成的问题,搞不定……
- 哪里有Hibernate的项目的源代码下载
- log4j里面的info,debug,error级别有什么区别?
- ejb问题
- java List问题,在线急,请大虾指教!!!!!!!!
- 弱弱的问!!查询时需要几个不同条件的任意组合, 这样的活CMP可以做吗?
- Spring中bulkUpdate方法 和 HibernateCallback 中 executeUpdate方法事务不起作用
- 求教lda(latent dirichlet allocation)的困惑度(perplexity)
应该是这的问题,有可能jndi没有配置对,对象为空,然后转换的时候自然就转错了。。
DataSource ds = (DataSource)ctx.lookup("MyDataSource");
con = ds.getConnection(); 这几行多测测,看看。
System.out.println("yes, it is.");
}
测一下