IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Servlet response already use stream, Writer not possible


Sujet :

JSF Java

  1. #1
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut Servlet response already use stream, Writer not possible
    bonjour
    j'ai un message d'erreur la page pdf n'affiche pas sur la page jsf
    j'ai message
    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
     
    GRAVE: Error Rendering View[/imprimer.xhtml]
    java.lang.IllegalStateException: Servlet response already use stream, Writer not possible
    	at org.ajax4jsf.webapp.FilterServletResponseWrapper.getWriter(FilterServletResponseWrapper.java:209)
    	at com.sun.facelets.FaceletViewHandler.createResponseWriter(FaceletViewHandler.java:416)
    	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:573)
    	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
    	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    je n'arrive pas à comprendre

    je vous montre la classe bean

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    import java.io.IOException;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    import javax.faces.context.FacesContext;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletResponse;
     
    import com.lowagie.text.pdf.codec.Base64.OutputStream;
     
    import net.sf.jasperreports.engine.JRException;
    import net.sf.jasperreports.engine.JRExporterParameter;
    import net.sf.jasperreports.engine.JasperCompileManager;
    import net.sf.jasperreports.engine.JasperExportManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.engine.design.JasperDesign;
    import net.sf.jasperreports.engine.export.JRPdfExporter;
    import net.sf.jasperreports.engine.xml.JRXmlLoader;
     
     
    public class imprimer {
     
    	public imprimer() {
    		// TODO Auto-generated constructor stub
    	}
    public String impri() throws InstantiationException, IllegalAccessException, ClassNotFoundException, JRException, IOException{
     
    		try {
     
    			// Load the JDBC driver
    			 ResultSet res3=null;
    				Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    				 String serverName = "localhost";
    				    String mydatabase = "test";
    				    String url = "jdbc:mysql://" + serverName +  "/" + mydatabase; // a JDBC url
    					 String user = "root"; 
     
    			     String pass = "lola1";
     
     
    			     java.sql.Connection connection = DriverManager.getConnection(url, user, pass);
    					     Statement instruction = ((java.sql.Connection) connection).createStatement();
     
     
    					     JasperDesign jDesign = JRXmlLoader.load("C:\\Users\\Mustapha\\workspace\\mus\WebContent\\1.jrxml");
    						  			    JasperReport jReport = JasperCompileManager.compileReport(jDesign);
     
     
     
     
     
     
     
     
     
    						    JasperPrint jasperPrint = JasperFillManager.fillReport(jReport, null, connection);
     
    						    FacesContext facesContext = FacesContext.getCurrentInstance() ;
     
    							   facesContext.getExternalContext().getResponse();
    							   HttpServletResponse response1 = (HttpServletResponse)facesContext.getExternalContext().getResponse();
    							     // Set response content type
    							   response1.setContentType("application/pdf");
     
     
    						   // Create and export PDF to browser window
    						   JRPdfExporter exporter = new JRPdfExporter();
    						   System.out.println("salut97");
    						   exporter.setParameter(
    						   JRExporterParameter.JASPER_PRINT, jasperPrint);
    						   exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response1.getOutputStream());
    						   exporter.exportReport();
     
    							} catch (SQLException e) {
    								// TODO Auto-generated catch block
    								e.printStackTrace();
     
     
     
    		// JasperExportManager.exportReportToPdfFile(jasperPrint, "C://mustapha.pdf"); 
     
     
     
     
     
    			   //JasperViewer.viewReport(jasperPrint,false);
     
     
     
    			}return "retour";
    }
    }

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si vous générez vous même dans l'action une réponse, vosu devez appeler facesContext.responseComplete() pou que JSF arrête le travail.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/08/2014, 19h57
  2. Réponses: 2
    Dernier message: 28/11/2013, 18h59
  3. Réponses: 1
    Dernier message: 16/02/2010, 22h00
  4. Réponses: 2
    Dernier message: 19/08/2009, 15h03
  5. [Servlet] response.getWriter()
    Par phoebe dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 18/05/2004, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo