Well you need to get the original ResultSet out of the wrapper - I don't use dbcp, but looking at the source code it looks like getInnermostDelegate() does that.
http://cvs.apache.org/viewcvs.cgi/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/ The thing is, do you need to cast it to an OracleResultSet at all, can't you use the standard ResultSet.getBlob(int) method? Niall ----- Original Message ----- From: "Nathan Maves" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Thursday, April 22, 2004 1:54 AM Subject: Re: what could cause this Class Cast exception > So what would be the best way of converting that wrapper class into an > OracleResultSet? > > Is the problem that an OracleResultSet extends java.sql.ResultSet and > the Wrapper implements it? > > Nathan > On Apr 21, 2004, at 5:29 PM, Niall Pemberton wrote: > > > So if its not an OracleResultSet, then what kind is it? > > > > I believe if you use something like Commons dbcp it uses wrappers for > > everything - DelegatingResultSet > > > > Niall > > > > ----- Original Message ----- > > From: "Nathan Maves" <[EMAIL PROTECTED]> > > To: "Struts Users Mailing List" <[EMAIL PROTECTED]> > > Sent: Thursday, April 22, 2004 12:15 AM > > Subject: what could cause this Class Cast exception > > > > > >> I know this is not truly struts related but... > >> > >> I had a servlet that loaded blobs from oracle (pdf files). This > >> worked > >> perfect. I copied the code into my action and I know receive this > >> error: > >> > >> java.lang.ClassCastException > >> at > >> reporting.viewer.presentation.actions.ViewReport.execute(ViewReport.ja > >> va > >> :86) > >> at > >> org.apache.struts.action.RequestProcessor.processActionPerform(Request > >> Pr > >> ocessor.java:484) > >> at > >> org.apache.struts.action.RequestProcessor.process(RequestProcessor.jav > >> a: > >> 274) > >> > >> here is the code.... > >> > >> > >> // Obtain our environment naming context > >> Context initCtx = new InitialContext(); > >> Context envCtx = (Context) initCtx.lookup("java:comp/env"); > >> > >> // Look up our data source > >> DataSource ds = (DataSource) > >> envCtx.lookup("jdbc/report-viewer"); > >> > >> // Allocate and use a connection from the pool > >> Connection conn = ds.getConnection(); > >> PreparedStatement ps = null; > >> ResultSet rs = null; > >> > >> ..... > >> > >> if (rs.next()) { > >> OracleResultSet ors = (OracleResultSet)rs; > >> ----------------(THIS IS LINE 86 of ViewReport.java) > >> BLOB blob = ors.getBLOB(2); > >> > >> if (blob != null) { > >> response.setContentType(rs.getString(1)); > >> > >> InputStream is = blob.getBinaryStream(); > >> int size = blob.getBufferSize(); > >> byte[] buffer = new byte[size]; > >> int length = -1; > >> > >> while ((length = is.read(buffer)) != -1) { > >> out.write(buffer, 0, length); > >> } > >> } > >> } > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]