----- Original Message -----
Sent: Monday, March 10, 2003 5:22
PM
Subject: [java-list] Alan: Erro ao
recuperar arquivo?
Como vai pessoal?
Estou tendo um problema ao tentar
recuperar arquivos acima de 2Kb do Banco de dados Oracle9i armazenados em
um campo CLOB.
Digo acima de 2Kb, pois com arquivos
menores não há problema.
Estou usando o servidor de aplicação
Oracle9iAS. (O problema pode estar aqui! Em alguma
configuração.)
Tenho uma classe que recupera arquivos de
um banco de dados para que o usuário possa fazer o download dos
mesmos.
O campo no banco que armazena os
arquivos é um CLOB.
O campo é recuperado da seguinte
maneira:
...
ByteArrayOutputStream
baos = new ByteArrayOutputStream();
ResultSet rs =
conn.createStatement().executeQuery(sql);
...
InputStream
arquivo = rs.getBinaryStream("LOB_ARQUIVO");
int bytes_read
= 0;
byte buffer[] = new
byte[4096];
try
{
while((bytes_read = arquivo.read(buffer, 0, buffer.length)) !=
-1)
baos.write(buffer, 0,
bytes_read);
arquivo.close();
}
...
O erro acontece quando tentamos recuperar
arquivos acima de 2kb. Com arquivos menores não há problema.
Será que alguém pode me dar uma
luz?
O erro que é exibido é esse:
500 Internal Server Error
java.lang.NullPointerException
at com.caa.classesnegocio.Chamado_ca.RetornarAnexo(Chamado_ca.java:1935)
at _caa__exibir__anexo._jspService(_caa__exibir__anexo.java:90)
[SRC:/caa_exibir_anexo.jsp:36]
at com.orionserver[Oracle9iAS (9.0.2.0.0) Containers for J2EE].http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:302)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:407)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:330)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:59)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:523)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:735)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.AJPRequestHandler.run(AJPRequestHandler.java:151)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].util.ThreadPoolThread.run(ThreadPoolThread.java:64)
Muito Obrigado!
Alan.