| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/09/2006 13:25:11
|
julianostr
GUJ Ranger
![[Avatar]](/images/avatar/ca7e09eacf1ae34bc819d495c5adfed9.jpg)
Membro desde: 31/03/2006 14:16:14
Mensagens: 855
Localização: Blumenau - SC
Offline
|
Pessoal, estou colocando aqui a solução para gravar e ler um campo Blob num banco Oracle 10g Release 10.1.0.4.0.
É necessário utilizar o driver ojdbc14.jar (manifest 10.1.0.4.0) e os pacotes commons-fileupload-1.1.1.jar e commons-io-1.2.jar. (http://jakarta.apache.org/commons/fileupload/)
Notem que o exemplo do servlet é extremamente simples onde eu sequer fiz validação do tipo de arquivo para upload, está fixo um .jpg.
Exemplo .jsp:
Exemplo servlet:
|
LASER
Light Amplification by Stimulated Emission of Radiation |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/11/2006 19:35:37
|
mcruz
Debugger
![[Avatar]](/images/avatar/409bbd0d0f516a326f2080c26a10d530.jpg)
Membro desde: 19/05/2006 17:13:52
Mensagens: 62
Offline
|
Olá Juliano, trago este tópico de volta, pois, estou com um problema ao tentar executar o código que vc descreveu. Peço, por favor, que me diga onde está o erro, pois acho que não está muito diferente do código q vc postou. Agradeço a ajuda de todos.
No meu servlet RenderPhoto.java está assim:
e o método de DBFoto que recupera a stream é (acho está ok):
Estou usando um tal de oracle_thin_driver.jar, mas já testei com o ojdbc14.jar e dá no mesmo.
Eu já debuguei com o Eclipse e o método realmente retorna a stream (linha 46), mas na hora de ler a stream para o array de bytes (linha 47) dá o seguinte erro:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/11/2006 20:01:10
|
mcruz
Debugger
![[Avatar]](/images/avatar/409bbd0d0f516a326f2080c26a10d530.jpg)
Membro desde: 19/05/2006 17:13:52
Mensagens: 62
Offline
|
O engraçado é que aparece outro tipo de erro agora:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/11/2006 20:25:15
|
julianostr
GUJ Ranger
![[Avatar]](/images/avatar/ca7e09eacf1ae34bc819d495c5adfed9.jpg)
Membro desde: 31/03/2006 14:16:14
Mensagens: 855
Localização: Blumenau - SC
Offline
|
Pelo seu segundo erro não há nada no stream (imageStream). Verifique se realmente está retornando algo da base.
|
LASER
Light Amplification by Stimulated Emission of Radiation |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/11/2006 20:36:50
|
mcruz
Debugger
![[Avatar]](/images/avatar/409bbd0d0f516a326f2080c26a10d530.jpg)
Membro desde: 19/05/2006 17:13:52
Mensagens: 62
Offline
|
Está sim(veja na imagem anexa a tela do debug).
O que mais poderia ser??
|
| Nome do arquivo |
debug.JPG |
Download
|
| Descrição |
debug |
| Tamanho |
150 Kbytes
|
| Baixado: |
155 vez(es) |
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/11/2006 17:41:10
|
mcruz
Debugger
![[Avatar]](/images/avatar/409bbd0d0f516a326f2080c26a10d530.jpg)
Membro desde: 19/05/2006 17:13:52
Mensagens: 62
Offline
|
[RESOLVIDO]
Desculpe, Juliano, não atentei para um detalhe do seu código:
A conexão com o banco é fechada DEPOIS das operações de leitura/escrita sobre a InputStream.
Só percebi o erro após ver a explicação nesse post de outro fórum. No meu código, a classe do banco está naquele padrão: abre conexão, recupera dados, fecha conexão e entrega daods pro action, a NullPointerException era por causa da conexão fechada.
|
|
|
 |
|
|