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; }
Partager