Exibir imagem no browser

3 respostas
anderson.bonavides

Pessoal tenho um servlet que tem que me exibir uma imagem no browser, porém ele está lançando uma Exceção "ClassCastException" na linha 10. Alguem poderia me dar uma força?

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


		String query = "select IMG.CONTENT from VEP_CNJ_TB_DOCUMENTO_IMAGEM IMG WHERE IMG.ID_DOCUMENTOIMAGEM = ?";
		String id = request.getParameter("id");
		try {
			con = Pilha.getConexao();
			PreparedStatement stmt = con.prepareStatement(query);
			stmt.setString(1, id);
			OracleResultSet rset = (OracleResultSet) stmt.executeQuery(); //LANÇANDO EXCEÇÃO
			if (rset.next()) {
				OrdImage img = (OrdImage) rset.getORAData(1, OrdImage.getORADataFactory());
				OrdHttpResponseHandler handler = new OrdHttpResponseHandler(request, response);
				handler.sendImage(img);
			} else {
				response.setStatus(response.SC_NOT_FOUND);
			}
			rset.close();
			stmt.close();
			con.close();
		} catch (Exception e) {
			e.printStackTrace();
	        System.out.println("Erro foto:"+e.getMessage());
	        PrintWriter out;
	        out = response.getWriter();
	        response.setContentType( "text/html" );
	        out.println(fotoNaoCadastrada);       
	        out.close();
		} finally {
			// freeConnection( conn );
		}
		response.setContentType("text/html;charset=UTF-8");
	    PrintWriter out = response.getWriter();

	}
Segue a exceção:
java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.DelegatingResultSet
	
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Unknown Source)
Erro foto:org.apache.tomcat.dbcp.dbcp.DelegatingResultSet

3 Respostas

T

Dê uma olhada na documentação de org.apache.tomcat.dbcp.dbcp.DelegatingResultSet, deve haver algum método que retorne o “result set” nativo (ou seja, OracleResultSet). Não se esqueça que depois o que deve ser fechado é o DelegatingResultSet e não o OracleResultSet, senão você vai confundir o dbcp.

anderson.bonavides

O stmt.executeQuery(); já retorna um Resulset.

:frowning:

anderson.bonavides

Dando uma pesquisada na internet eu verifiquei que minha implementação ta correta, o grande problema acredito que seja a falta de alguma biblioteca e não sei como olhar quais são as dependências do OracleResultSet.

=/

Criado 13 de julho de 2009
Ultima resposta 13 de jul. de 2009
Respostas 3
Participantes 2