使用tomcat连接池读取ORACLE数据库Blob字段是老是出错,连接池没配置错,因为是可以连接的,就读取Blob的时候BLOB b=(BLOB)rs.getBlob(1);出现ClassCastException。哪位大哥碰过这个问题的?tomcat版本我从5.0升到5.5了,读取的时候用Statement和PrepareStatement都试过了.......
java.lang.ClassCastException
        at OADemo.BaseClass.DBControl.BlobInsert(DBControl.java:380)
        at OADemo.Notify.Struts.NotifyAction.AddNotify(NotifyAction.java:134)
        at OADemo.Notify.Struts.NotifyAction.execute(NotifyAction.java:28)
        at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:484)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:274)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148
2)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:868)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
rocessConnection(Http11BaseProtocol.java:663)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:684)
        at java.lang.Thread.run(Thread.java:53)

解决方案 »

  1.   

    插入BLOB数据出现的异常!自己顶一下........
      

  2.   

    java.lang.ClassCastException,问题已经很明白了,你取得的数据,和你想实例化的对象,不是一个类型的。你的这个字段,在数据库中的类型是什么,然后再看,这个数据类型对应的java的数据类型,是不是BLOB。
      

  3.   

    肯定是BLOB没错的,我使用JDBC直接连接到ORACLE取出来过,只不过换了连接方式就出错了......网上也有人提过类似问题,不过也没答案好象,哪位大虾帮帮忙...
      

  4.   

    tomcat连接池实际上是对Connection的一层包装。使用连接池后,获得的Connection是Connection子类,ResultSet实际上也是子类。而oracle.jdbc.OracleResultSet也是ResultSet子类,这样变成平级关系,类型转换就错了