Bonjour,

Je suis en cours d'installation d'un serveur, et je migre de tomcat 5.5 a tomcat 7.0.37 . J'ai une sevlet d'affichage d'image dans laquelle j'ai juste rajouter une anotation puisque l'appel "servlet" n'est plus en tomcat7.
Lorsque je charge des fichiers JPG de 5Mo en troisieme niveau dans mon programme j'ai sur ma nouvelle machine un connection reset au milieu de ma boucle ! Mon code de copie vers ServletOutputStream me semble correct, et il fonctionnait en tomcat5.5. Une idée ?
Merci d'avance
Phil

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
26
27
28
29
30
 
ClientAbortException:  java.net.SocketException: Connection reset
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:388)
	at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:462)
	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:413)
	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:401)
	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:91)
	at servletgallery01.UtilServlet.dumpFile(UtilServlet.java:363)
	at servletgallery01.ImagesServlet.doPost(ImagesServlet.java:347)
	at servletgallery01.ImagesServlet.doGet(ImagesServlet.java:130)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:662)

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
  public long dumpFile(String s, OutputStream outputstream) {
         String  s1       = s;
		 int l=4096;
         byte    abyte0[] = new byte[l];
         long rt       = -1;
 
         logInfo("dumpFile01");
         logInfo("dumpFile02 s1=" + s1);
 
         try {
             File f2=lookupFile(s1);
			   long t=0;
			  if (f2.exists() && (f2.length() > 0)) {
			  logInfo("dumpFile04");
			 BufferedInputStream bufferedinputstream = new BufferedInputStream(new FileInputStream(f2)); 
             int                 i;
 
			logInfo("dumpFile05");
 
             while ((i = bufferedinputstream.read(abyte0, 0, l)) != -1) {
			 logInfo("dumpFile06 i="+i);
                 outputstream.write(abyte0, 0, i); //Erreur ICI en tomcat7
				  logInfo("dumpFile07 i="+i);
                 t=t+i;
             }
			logInfo("dumpFile09");
             bufferedinputstream.close();
			 }
			 	logInfo("dumpFile10 t="+t);
             rt =t;
         } catch (Exception exception) {
             logError("dumpFile Error s=" + s+" exception="+exception.getMessage());
			 exception.printStackTrace();
             rt = -1;
         }
 
		 logInfo("dumpFile19");
         return rt;
     }