鏂版墜闂銆傘€傘€傘€傘€€鎬ャ€傘€傘€傘€傘€€銆€鐚笂100鍒嗐€傘€傘€?/a>

时间:2022-12-12 20:12:24
<%@ page language="java" %>
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page buffer="32kb" autoFlush="true" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="oracle.sql.*" %>
<%@ page import="oracle.jdbc.driver.*" %>
<%!
   ResultSet rSet;
   PreparedStatement pment;
   Connection conn; 
%>

<%!
   void datFun() throws SQLException,Exception
        {
         Context init = new InitialContext();
         DataSource data=(DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
         conn=data.getConnection();
         
        }
 
%>

<html>
     <head>
          <title>c.jsp</title>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     </head>
     
     <body>
          <%
            boolean f=true;
            String getTitle=request.getParameter("title");
            String getText=request.getParameter("txt");
                   getTitle="鏍囬";
                   getText="杩欓噷鏄鏂囧唴瀹?!!";

            String sql1="insert into c(title,c) values(?,empty_clob())";
            String sql2="select c from c  for update";
            try{
                datFun();
                conn.setAutoCommit(false);
                pment=conn.prepareStatement(sql1);
                pment.setString(1,getTitle);
                pment.executeUpdate();
                pment=null;
           
                pment=conn.prepareStatement(sql2);
                rSet=pment.executeQuery();

                if (rSet.next())
                      {
                       CLOB clob= (CLOB)rSet.getClob(1);
                       Writer wr = clob.getCharacterOutputStream();
                              wr.write(getText);
                              wr.flush();
                              wr.close();
                      }
                 }
                  catch(IOException e) { 
                       System.out.println("閿欒淇℃伅锛?+e.toString());
                  }
               
                  catch(Exception en){
                      System.out.println("閿欒淇℃伅:"+en);
                      throw new SQLException ("閿欒!!!"+en.toString());
                     }
                       
               rSet.close();
               pment.close();
               conn.commit();
               conn.close();
          %>
      </body>
</html>


杩愯鏃跺ソ鍍忚娉曟病鏈夐敊璇€傘€€寮傚父濡備笅锛?
HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: ??!!!java.lang.ClassCastException
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.lx.c_jsp._jspService(c_jsp.java:135)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)


root cause 

java.sql.SQLException: ??!!!java.lang.ClassCastException
org.apache.jsp.lx.c_jsp._jspService(c_jsp.java:119)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.27 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.27


17 涓В鍐虫柟妗?/h2>

#1


String sql2="select c from c  for update"; 杩欎竴鍙ヤ负浠€涔堟剰鎬?

#2


CLOB clob= (CLOB)rSet.getClob(1);
搴旇鏄繖鍙ヨ瘽鐨勯棶棰?
涓€鑸珻lob閮芥槸鐢ˋsciiStream鏉ヨ鐨?

#3


鍒皌omcat鎵炬枃浠禼_jsp.java 瀵熺湅 119 琛岋紝锛戯紦锛曡锛屽療鐪嬫椂浠€涔堜唬鐮侊紝寮曡捣鐨勯敊璇€?

#4


鐪嬩綘鐨勯敊璇俊鎭細
javax.servlet.ServletException: ??!!!java.lang.ClassCastException
閲岄潰鏈?!!
鍐嶇湅浣犵殑绋嬪簭
catch(Exception en){
                      System.out.println("閿欒淇℃伅:"+en);
                      throw new SQLException ("閿欒!!!"+en.toString()); //杩欒竟
                     }
鏄剧劧鏄▼搴忓湪try鐨勬椂鍊欐墧鍑轰簡 Exception,鐒跺悗浣犵殑绋嬪簭灏辨墧鍑?nbsp; SQLException ("閿欒!!!"+en.toString()); 闂鍦╰ry 閲?nbsp; 

datFun()閲屼細鎵斿嚭 Exception 鐢⊿ystem.out,println(),涓€姝ユ鏌?鐪嬪埌搴曟槸鍝彞鍑洪棶棰樹簡

#5


妤间笂.java.lang.ClassCastException鏄姤绫荤殑绫诲瀷涓嶅尮閰?搴旇涓嶆槸杩欓噷鐨勯敊璇?

#6


瀵癸紝java.lang.ClassCastException 鍙互琚?nbsp;catch(Exception en){ 鎶撳埌鐨?
鎵€浠ユ牴鎹甧n.toString浼氭墦鍗板嚭鍑洪敊鐨勭被鍨嬬殑,鍙互浼拌鏁版嵁搴撳拰IO閮借繕娌℃湁鎶ラ敊,
鏈夊彲鑳芥槸DataSource data=(DataSource)init.lookup("java:comp/env/jdbc/OracleDB");杩欏彞鏈夐棶棰?
涓嶈繃鎴戞病鏈夌敤杩嘍ataSource,涓嶆槸寰堢‘瀹?

#7


UP銆傘€傘€傘€傘€€
鑰佸ぇ浠€傘€傚埌搴曞埌鎬庝箞瑙e喅鍟婏紵銆€銆€銆€鍍忕被浼肩殑闂娌℃湁涓€涓叿浣撶殑銆佺粺涓€鐨勩€佹爣鍑嗙殑瑙e喅鏂规鍚楋紵

#8


TO銆€panzhiwei(panzhiwei008) 

String sql2="select c from c  for update"; 杩欎竴鍙ヤ负浠€涔堟剰鎬?
濡傛灉鍔犱笂銆€
String sql2="select c from c where 瀛楁=鍊?nbsp;for update"; 杩欎竴鍙ヤ负浠€涔堟剰鎬?
浼氬嚭閿欒銆傘€傘€備笉鐭ラ亾涓轰粈涔堬紵

鍝庛€傝繖涓厛涓嶇浜嗐€傘€傘€傘€€鍏堟妸涓昏闂銆€瑙e喅浜嗗啀璇村惂銆傘€傘€傘€?

#9


CLOB clob= (CLOB)rSet.getClob(1);
搴旇鏄繖鍙ヨ瘽鐨勯棶棰?
涓€鑸珻lob閮芥槸鐢ˋsciiStream鏉ヨ鐨?

#10


璋佹病鏈夊仛杩囥€傘€傝繖绉嶅鐞嗗ぇ瀛楁鐨勭▼搴忓悧锛熴€€鑳藉惁甯栧嚭鏉ャ€€瀛︿範瀛︿範銆傘€傘€傘€€

#11


璇籆lob鐢ㄦ祦,涓€鑸笉鑳界洿鎺ョ敤Getclob鐨?鎴戞槸鍐欏湪Bean涓殑.鐢ㄧ殑鏄瓧绗︽祦.

#12


UP

#13


CLOB clob= (CLOB)rSet.getClob(1);

-->
Clob clob= rSet.getClob(1); //java.sql.Clob

#14


瀹為檯鏄繖鏄噸鍒殑鍦版柟COPY鏉ョ殑浠g爜銆€銆傘€傘€傘€傘€€
鏁翠綋涓婅兘鎳傛槸浠€涔堟剰銆傜粏鑺傞儴鍒嗗氨涓嶇煡鍏舵墍浠ョ劧銆傘€傘€傘€傘€€
鎴戜細鍔姏瀛︿範鐨勩€傘€?

#15


鎻愪緵涓€涓鍙?nbsp;Oracle LONG绫诲瀷鏁版嵁鐨勪唬鐮侊紝鍒殑绫诲瀷閫傚綋淇敼灏卞彲浠ヤ簡
    StringBuffer result ;
    //LONGVARCHAR绫诲瀷锛屼娇鐢≧eader璇诲嚭鎴怱tring
    Reader reader = rs.getCharacterStream ( j + 1 ) ;
    if (reader==null) {
      result = null;
    }
    else {
      result = new StringBuffer();
      while (true) {
        int ch = 0 ;
        ch = reader.read () ;
        if (ch == -1) {
          break;
        }
        if ( ch >= 0){
          result.append ( ( char )ch ) ;
        }
      }
      reader.close();
    }

#16


璋㈣阿鍚勪綅鍩烘湰闂瑙e喅浜嗐€傘€傛槸寮傚父鐨勯棶棰?

#17


catch(IOException e) { 
                       System.out.println("閿欒淇℃伅锛?+e.toString());
                  }
               
                  catch(Exception en){
                      System.out.println("閿欒淇℃伅:"+en);
                      throw new SQLException ("閿欒!!!"+en.toString());
                     }
                       

鏀规垚锛屻€傘€傘€?

catch(IOException e){ 
銆€      System.out.println("閿欒淇℃伅锛?+e.toString());
       }
catch(SQLException e1){
      System.out.println("閿欒淇℃伅锛?+e1.toString());
catch(Exception en){
銆€     System.out.println("閿欒淇℃伅:"+en.toString());
      }
                       

璋㈣阿銆€銆€鍚勪綅浜嗐€傘€傘€傘€傜粨甯愩€傘€傘€傘€?

#1


String sql2="select c from c  for update"; 杩欎竴鍙ヤ负浠€涔堟剰鎬?

#2


CLOB clob= (CLOB)rSet.getClob(1);
搴旇鏄繖鍙ヨ瘽鐨勯棶棰?
涓€鑸珻lob閮芥槸鐢ˋsciiStream鏉ヨ鐨?

#3


鍒皌omcat鎵炬枃浠禼_jsp.java 瀵熺湅 119 琛岋紝锛戯紦锛曡锛屽療鐪嬫椂浠€涔堜唬鐮侊紝寮曡捣鐨勯敊璇€?

#4


鐪嬩綘鐨勯敊璇俊鎭細
javax.servlet.ServletException: ??!!!java.lang.ClassCastException
閲岄潰鏈?!!
鍐嶇湅浣犵殑绋嬪簭
catch(Exception en){
                      System.out.println("閿欒淇℃伅:"+en);
                      throw new SQLException ("閿欒!!!"+en.toString()); //杩欒竟
                     }
鏄剧劧鏄▼搴忓湪try鐨勬椂鍊欐墧鍑轰簡 Exception,鐒跺悗浣犵殑绋嬪簭灏辨墧鍑?nbsp; SQLException ("閿欒!!!"+en.toString()); 闂鍦╰ry 閲?nbsp; 

datFun()閲屼細鎵斿嚭 Exception 鐢⊿ystem.out,println(),涓€姝ユ鏌?鐪嬪埌搴曟槸鍝彞鍑洪棶棰樹簡

#5


妤间笂.java.lang.ClassCastException鏄姤绫荤殑绫诲瀷涓嶅尮閰?搴旇涓嶆槸杩欓噷鐨勯敊璇?

#6


瀵癸紝java.lang.ClassCastException 鍙互琚?nbsp;catch(Exception en){ 鎶撳埌鐨?
鎵€浠ユ牴鎹甧n.toString浼氭墦鍗板嚭鍑洪敊鐨勭被鍨嬬殑,鍙互浼拌鏁版嵁搴撳拰IO閮借繕娌℃湁鎶ラ敊,
鏈夊彲鑳芥槸DataSource data=(DataSource)init.lookup("java:comp/env/jdbc/OracleDB");杩欏彞鏈夐棶棰?
涓嶈繃鎴戞病鏈夌敤杩嘍ataSource,涓嶆槸寰堢‘瀹?

#7


UP銆傘€傘€傘€傘€€
鑰佸ぇ浠€傘€傚埌搴曞埌鎬庝箞瑙e喅鍟婏紵銆€銆€銆€鍍忕被浼肩殑闂娌℃湁涓€涓叿浣撶殑銆佺粺涓€鐨勩€佹爣鍑嗙殑瑙e喅鏂规鍚楋紵

#8


TO銆€panzhiwei(panzhiwei008) 

String sql2="select c from c  for update"; 杩欎竴鍙ヤ负浠€涔堟剰鎬?
濡傛灉鍔犱笂銆€
String sql2="select c from c where 瀛楁=鍊?nbsp;for update"; 杩欎竴鍙ヤ负浠€涔堟剰鎬?
浼氬嚭閿欒銆傘€傘€備笉鐭ラ亾涓轰粈涔堬紵

鍝庛€傝繖涓厛涓嶇浜嗐€傘€傘€傘€€鍏堟妸涓昏闂銆€瑙e喅浜嗗啀璇村惂銆傘€傘€傘€?

#9


CLOB clob= (CLOB)rSet.getClob(1);
搴旇鏄繖鍙ヨ瘽鐨勯棶棰?
涓€鑸珻lob閮芥槸鐢ˋsciiStream鏉ヨ鐨?

#10


璋佹病鏈夊仛杩囥€傘€傝繖绉嶅鐞嗗ぇ瀛楁鐨勭▼搴忓悧锛熴€€鑳藉惁甯栧嚭鏉ャ€€瀛︿範瀛︿範銆傘€傘€傘€€

#11


璇籆lob鐢ㄦ祦,涓€鑸笉鑳界洿鎺ョ敤Getclob鐨?鎴戞槸鍐欏湪Bean涓殑.鐢ㄧ殑鏄瓧绗︽祦.

#12


UP

#13


CLOB clob= (CLOB)rSet.getClob(1);

-->
Clob clob= rSet.getClob(1); //java.sql.Clob

#14


瀹為檯鏄繖鏄噸鍒殑鍦版柟COPY鏉ョ殑浠g爜銆€銆傘€傘€傘€傘€€
鏁翠綋涓婅兘鎳傛槸浠€涔堟剰銆傜粏鑺傞儴鍒嗗氨涓嶇煡鍏舵墍浠ョ劧銆傘€傘€傘€傘€€
鎴戜細鍔姏瀛︿範鐨勩€傘€?

#15


鎻愪緵涓€涓鍙?nbsp;Oracle LONG绫诲瀷鏁版嵁鐨勪唬鐮侊紝鍒殑绫诲瀷閫傚綋淇敼灏卞彲浠ヤ簡
    StringBuffer result ;
    //LONGVARCHAR绫诲瀷锛屼娇鐢≧eader璇诲嚭鎴怱tring
    Reader reader = rs.getCharacterStream ( j + 1 ) ;
    if (reader==null) {
      result = null;
    }
    else {
      result = new StringBuffer();
      while (true) {
        int ch = 0 ;
        ch = reader.read () ;
        if (ch == -1) {
          break;
        }
        if ( ch >= 0){
          result.append ( ( char )ch ) ;
        }
      }
      reader.close();
    }

#16


璋㈣阿鍚勪綅鍩烘湰闂瑙e喅浜嗐€傘€傛槸寮傚父鐨勯棶棰?

#17


catch(IOException e) { 
                       System.out.println("閿欒淇℃伅锛?+e.toString());
                  }
               
                  catch(Exception en){
                      System.out.println("閿欒淇℃伅:"+en);
                      throw new SQLException ("閿欒!!!"+en.toString());
                     }
                       

鏀规垚锛屻€傘€傘€?

catch(IOException e){ 
銆€      System.out.println("閿欒淇℃伅锛?+e.toString());
       }
catch(SQLException e1){
      System.out.println("閿欒淇℃伅锛?+e1.toString());
catch(Exception en){
銆€     System.out.println("閿欒淇℃伅:"+en.toString());
      }
                       

璋㈣阿銆€銆€鍚勪綅浜嗐€傘€傘€傘€傜粨甯愩€傘€傘€傘€?