salut,
j'ai essayé d'ouvrir un document en utilisant code javscript qui va exécuter une servlet
code javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12function action_consultation(grid, record, row, col) { var url = "<c:url value='/printer'/>?method=consultDoc&guid="+ record.get('id') ; window.open(url); }
code servlet :
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54 public class PrinterServlet extends HttpServlet { protected static Logger log = Logger.getLogger(PrinterServlet.class); private static final String URL_METHOD = "method"; private static final long serialVersionUID = -6079308419049730421L; public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String methodName = request.getParameter(URL_METHOD); System.out.println(" ::: ---method --------- =" + methodName); try { if ("consultDoc".equals(methodName)) { this.consultDoc(request, response); } } catch (Exception e) { } } protected void consultDoc(HttpServletRequest request, HttpServletResponse response) throws Exception { DossierJuridiqueManager dossierJuridiqueManager = (DossierJuridiqueManager) PortalUtil.getBean(DossierJuridiqueManager.managerid); byte[] file = new byte[1024]; file=dossierJuridiqueManager.consultDoc1(request, response, null, request.getParameter("guid")); if ((file != null) && (file.length > 0)) { response.setContentType("application/pdf"); response.setContentLength(file.length); try { ServletOutputStream ouputStream = response.getOutputStream(); ouputStream.write(file, 0, file.length); ouputStream.flush(); ouputStream.close(); } catch (IOException e1) { e1.printStackTrace(); } } } }
mais lors de test j'ai l'erreur suivante :
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 content type = application/pdf fileName = testt.pdf content Size = 287129.0 ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:378) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:373) at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:403) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:391) at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:91) at com.dq.foprodex.web.testServlet.PrinterServlet.consultDoc(PrinterServlet.java:66) at com.dq.foprodex.web.testServlet.PrinterServlet.service(PrinterServlet.java:44) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 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:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) 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:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:216) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:460) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:368) at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:241) at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:84) at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192) at org.apache.coyote.Response.doWrite(Response.java:533)
merci d'avance
Partager