java.lang.ClassCastException
at cn.gov.bjmi.db.DbConnectionPool.executeIntoDate(DbConnectionPool.java:99)
at jsp_servlet._websites._hotquestion.__addhotquestion._jspService(__addhotquestion.java:164)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:446)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
cn.gov.bjmi.db.DbConnectionPool.executeIntoDate(DbConnectionPool.java:99)中指的99行是下面的语句oracle.jdbc.driver.OraclePreparedStatement ps= 
(oracle.jdbc.driver.OraclePreparedStatement)myConn.prepareStatement(strsql);
在weblogic环境下运行产生的,DbConnectionPool是连接池的类.
在weblogic环境下,如果不用连接池则不会出现这个错误,这是为什么呢,希望那位大虾能解决一下,非常感谢

解决方案 »

  1.   

    (oracle.jdbc.driver.OraclePreparedStatement)myConn.prepareStatement(strsql);这个句子既使不出现转换异常也不应该使用!!因为这些你的数据库操作大大的依赖了JDBC供应商的实现,这是绝对要避免的
      

  2.   

    用下面的方法打出ps1,看看是什么类,再决定怎么转换.
    Object  ps1 = myConn.prepareStatement(strsql);
    System.out.println(ps.getClass());
      

  3.   

    虽然没有解决问题还是要感谢2位,我后来看了找资料说使用jndi不支持这种转换,也不知道是否正确。可以通过ps.setDate(java.sql.Date)方式插入日期,但是没有时间,怎样能够同时将日期和时间插入数据库呢
      

  4.   

    oracle.jdbc.driver.OraclePreparedStatement ps=
    (oracle.jdbc.driver.OraclePreparedStatement)myConn.prepareStatement(strsql);       强制转换时,类型不对,可能返回的不是oracle.jdbc.driver.OraclePreparedStatement
      

  5.   

    如果我用weblogic连接池,通过jndi获取连接,则会产生java.lang.ClassCastException异常。
    而直接在类里编写代码获取连接则不存在上述问题,一切正常,为什么呢?
    我现在想用java.sql.*中的基础类实现,但一直有问题,欢迎大家查看
    http://community.csdn.net/Expert/topic/4052/4052237.xml?temp=.7202265
    里面是我使用的方法及产生的错误,望指教
      

  6.   

    要习惯用 接口编程,不要用  OraclePreparedStatement , 用直接使用 PreparedStatement.
    连接也一样. 因为容器可能用 Adapter 转换它从 Factory 那边得到的 对象, 转换后的用接口就不出错,但用concrete 类就出错.
      

  7.   

    我在http://community.csdn.net/Expert/topic/4052/4052237.xml?temp=.7202265发了类似的问题,用了好几种网上介绍的方法总有问题,希望大家去看看,这是为什么,这个帖子就结了