Bonjour à tous,
Je désire envoyer un fichier vers un client, simplement en proposant un lien qui pointe sur une servlet. Le but est d'utiliser un "ServletOutputStream" (voir code plus bas) . J'ai une erreur persistante "java.io.IOException: Insufficient system resources exist to complete the requested service" au niveau de mon serveur web, un Iplanet 4.1 sous windows NT4, et ceci a pour effet de "tronquer" le téléchargement. En effet, un fichier de 1500 Ko, ne fait que +/- 24 Ko une fois téléchargé
Voici ce que l'on peut voir au niveau de l'error log du serveur:
[14/Nov/2006:10:40:37] info ( 788): /servlet/maclasse.class: nom de fichier= f:\websites\monsite\mesfichiers\JT_5829_P_R_3M_Graphic_maker_Vutek_2360_3M_1500_series.zip
[14/Nov/2006:10:40:37] info ( 788): /servlet/maclasse.class: passé le getOutputstream
[14/Nov/2006:10:40:37] info ( 788): /servlet/maclasse.class: availableLength= java.io.FileInputStream@85120a8c
[14/Nov/2006:10:40:37] info ( 788): /servlet/maclasse.class: probleme envoi fichier, erreur= java.io.IOException: Insufficient system resources exist to complete the requested service.
[14/Nov/2006:10:40:37] info ( 788): /servlet/maclasse.class: id_client= 1488
Et voici le code dans la servlet:
Quelqu'un à une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 String name = nom_fichier_reel; try { ServletOutputStream out2 = res.getOutputStream(); log("passé le getOutputstream"); res.setHeader("Content-Disposition", "attachment;filename=" + name); FileInputStream in2 = new FileInputStream(fileName); int availableLength = in2.available(); log("availableLength= " + in2); byte[] totalBytes = new byte[availableLength]; int byteData = in2.read(totalBytes); out2.write(totalBytes); in2.close(); out2.flush(); out2.close(); } catch (IOException ex) { log("probleme envoi fichier, erreur= " + ex); } res.setContentType("text/html"); out = new PrintWriter(res.getOutputStream());
D'avance un grand merci
Partager