就直接跳到catch里了 把异常贴出来啊!你让我们猜啊!

解决方案 »

  1.   

    这是异常
    java.lang.ClassCastException: oracle.sql.BLOB
    at struts.action.PhotoAction.execute(PhotoAction.java:151)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    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(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at struts.form.FilterEncoding.doFilter(FilterEncoding.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
      

  2.   

    select   image   from   dzjc_image1 确认数据库吧!image 是否为Blob类型的
    2 建议你这样看看
    Object o = rs.getBlob("image"); 
    System.out.println(o); // 我们来看看他到底是啥!哈哈哈! 也许你的连接池搞了手脚呢!
      

  3.   

    貌似oracle的blob字段不能用jdbc连接池连接,必须用oracle提供的连接
      

  4.   

    java2000_net 
    老紫竹 
    等 级:
     发表于:2008-02-01 14:42:433楼 得分:0 
    select       image       from       dzjc_image 1   确认数据库吧!image   是否为Blob类型的 
    2   建议你这样看看 Java codeObject o = rs.getBlob("image"); 
    System.out.println(o); // 我们来看看他到底是啥!哈哈哈! 也许你的连接池搞了手脚呢
     
     ------------------------------------------
    1  我确定是blob型
    2  输出来的是   oracle.sql.BLOB@45484a
    =========================================================================
    yccn1314 
    貌似oracle的blob字段不能用jdbc连接池连接,必须用oracle提供的连接 
     ----------------------------------
    可以用的,但是据说是用JDBC 3.0就可以通过
    oracle提供的连接该怎么用?
      

  5.   

    太奇怪了,既然类型正确,怎么可能转化失败呢??
    我们再测试一下
        Object o = rs.getBlob("image");
        System.out.println(o);
        oracle.sql.BLOB blob= null;
        if(o instanceof oracle.sql.BLOB) {
          System.out.println("It is a oracle.sql.BLOB");
          blob = (oracle.sql.BLOB)o;
          System.out.println("Cast OK");
        }else {
          System.out.println("It is NOT a oracle.sql.BLOB");
        }[/code]
      

  6.   

    昨天没上班,请假了if(o instanceof oracle.sql.BLOB)测试跳到else里了
    用连接池测试输出结果是这样的
    oracle.sql.BLOB@122e0b3
    It   is   NOT   a   oracle.sql.BLOB
    ========================================================
    用直连就正常
    直连的是这样的
    oracle.sql.BLOB@5eb748
    It is a oracle.sql.BLOB
    Cast   OK
      

  7.   

    看来你已经解决了。连接池这个破东西还真是重新封装了Blob.
    你就用你自己的方法用吧。