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

Frameworks Web Java Discussion :

Génération d'un fichier Excel et java.lang.IllegalStateException: SRVE0199E: Elément OutputStream déja obtenu


Sujet :

Frameworks Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 115
    Par défaut Génération d'un fichier Excel et java.lang.IllegalStateException: SRVE0199E: Elément OutputStream déja obtenu
    Bonjour,

    Je veux dans un premier temps créer un fichier Excel à partir de mon action.

    de ce fait j'ai ce code :


    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
     
    	protected ActionForward onexecute(ActionMapping _mapping, ActionForm _form, HttpServletRequest _request, HttpServletResponse _response) 
    		throws IOException, ServletException {
     
    		HSSFWorkbook wb = new HSSFWorkbook();
     
    		// generate the Excel file and put it in the HTTP response
    		OutputStream outputStream = null;
    		try
    		{
    			outputStream = generateFile(_response, wb, "OK");
     
    		}
    		catch(Exception e)
    		{
    			LOGGER.error(e.getMessage(), e);
    		}
    		finally
    		{
    			if(outputStream != null)
    			{
    				outputStream.flush();
    				outputStream.close();
    			}
    		}
     
    		return _mapping.findForward("success");
    		}
     
     
     
     
    	protected OutputStream generateFile(final HttpServletResponse 	_response,
    			HSSFWorkbook 				wb,
    			String 						arreteCourantText) throws IOException
    			{
    		// stream of bytes
    		OutputStream outputStream;
     
    			// set the HTTP response headers
    				_response.setContentType("application/octet-stream");
    				_response.addHeader("Content-Disposition", "attachment; filename=\"monFichier.xls\"");
    				_response.setHeader("Pragma", "public");
    				_response.setHeader("Cache-Control", "cache");
    				_response.setHeader("Cache-control", "must-revalidate");
     
    				// put the Excel file in the HTTP response as a stream of bytes
    				outputStream = _response.getOutputStream();		
    				byte[] bytes = wb.getBytes();
    				POIFSFileSystem fs = new POIFSFileSystem();
    				fs.createDocument(new ByteArrayInputStream(bytes), "Workbook");
    				fs.writeFilesystem(outputStream);
     
    				HSSFSheet sheet 	= wb.createSheet("test");
     
    			    HSSFRow row = sheet.createRow(0);
    			    HSSFCell cell = row.createCell((short)0);
    			    cell.setCellValue(10);
     
    				return outputStream;
    			}
     
    }

    par contre dans le console j'ai le message d'erreur suivant ....

    java.lang.IllegalStateException: SRVE0199E: Elément OutputStream déjà obtenu

    [10/10/11 16:36:37:868 CEST] 00000024 WebApp E SRVE0026E: [Erreur de servlet]-[action]: java.lang.IllegalStateException: Cannot forward. Response already committed.


    et dans l'ihm j'ai (ce qui est en piece jointe)


    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 115
    Par défaut
    à présent le fichier Excel s'ouvre mais sans contenu et avec un message d'erreur avant l'ouverture du fichier (regardez en piece jointe)

    Par contre dans le console il y a toujours :

    javax.servlet.ServletException: SRVE0199E: Elément OutputStream déjà obtenu


    Merci de votre aide.
    Images attachées Images attachées  

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 115
    Par défaut
    java.lang.IllegalStateException: SRVE0199E: Elément OutputStream déjà obtenu

    j'ai ce message d'erreur merci de m'aider

    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
     
     
    java.lang.IllegalStateException: SRVE0199E: Elément OutputStream déjà obtenu
    	at com.ibm.ws.webcontainer.srt.SRTServletResponse.getWriter(SRTServletResponse.java:489)
    	at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:170)
    	at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:163)
    	at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java(Compiled Code))
    	at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:333)
    	at com.ibm._jsp._listUserARC._jspService(_listUserARC.java:258)
    	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1521)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
    	at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
    	at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:633)
    	at org.apache.struts.chain.commands.servlet.PerformForward.handleAsInclude(PerformForward.java:141)
    	at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:92)
    	at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
    	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1521)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:334)
    	at org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
    	at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
    	at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
    	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1521)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:136)
    	at com.bnpparibas.securid.presentation.filter.AuthentSecurIdFilter.doFilter(AuthentSecurIdFilter.java:131)
    	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
    	at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
    	at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
    	at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
    	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
    	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:89)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
    	at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
    	at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
    	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
    	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
    	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
    	at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
    	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)

Discussions similaires

  1. Générer un fichier Excel avec java
    Par osman.amine dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/06/2007, 17h26
  2. génération d'un fichier Excel
    Par étoile de mer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/04/2007, 13h18
  3. comment lire un fichier excel en java
    Par kamos dans le forum Documents
    Réponses: 2
    Dernier message: 26/12/2006, 09h51
  4. lancer un fichier excel en java
    Par nejib dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 22/09/2006, 13h16
  5. [EXCEL]Comment lire à partir d'un fichier Excel en java?
    Par BOUSHIH dans le forum Documents
    Réponses: 3
    Dernier message: 20/04/2006, 11h04

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