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

Spring Web Java Discussion :

download d'un fichier


Sujet :

Spring Web Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    14
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Par d�faut download d'un fichier
    Bonjour,

    Je travaille avec Spring Webflow 2.0.8 et j'ai un probl�me. L'application web doit g�n�rer un fichier excel et le proposer en t�l�chargement � l'utilisateur. Donc, j'ai suivi ce qui est donn� dans la doc de r�f�rence spring http://static.springsource.org/sprin...l/ch05s07.html paragraphe streaming actions.

    Dans le flow (qui s'appelle consultation), on a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
        <view-state id="syntheseView" model="syntheseModel" view="syntheseJsp">
            <transition on="retour" to="rechercheView" />
            <transition on="exporter">
                <evaluate expression="excelService"/>   
            </transition>
        </view-state>
    Le service de g�n�ration du fichier excel est le suivant :
    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
    public class ExcelService extends AbstractAction {
     
        @Override
        protected Event doExecute(RequestContext context) throws Exception {
            HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getNativeResponse();
            XlsFileManager xlsFileManager = new XlsFileManager();
            ModeleMetier modeleMetier = (ModeleMetier)context.getFlowScope().get("modeleMetier ");
            HSSFWorkbook wb = xlsFileManager.createXlsStream(modeleMetier );
            response.setContentType("application/vnd.ms-excel");
            response.setHeader("Content-Disposition","attachment; filename=fichiertoutbeantoutpropre.xls; charset=cp1252");
            ServletOutputStream sos = response.getOutputStream();
            wb.write(sos);
            sos.close();
            context.getExternalContext().recordResponseComplete();
            return success();
        }
    }

    Le comportement observ� est le suivant :
    dans la page synth�se, on clique sur le bouton "exporter", la g�n�ration du fichier excel se fait et on r�cup�re son document. La page synth�se elle, n'a pas boug�. Jusqu'ici, tout va bien.
    Ensuite, on clique sur un bouton de la page (exemple : le bouton "retour" qui appelle la transaction "retour").
    Et l�, c'est le drame. L'application plante avec la magnifique trace d'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
    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
    2010/06/03-18:44:58 [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' org.springframework.web.servlet.DispatcherServlet DEBUG Could not complete request
    org.springframework.webflow.execution.FlowExecutionException: Exception thrown in state 'syntheseView' of flow 'consultation'
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.wrap(FlowExecutionImpl.java:569)
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:263)
        at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:163)
        at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
        at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
        at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
        at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
        at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
        at org.springframework.security.ui.preauth.AbstractPreAuthenticatedProcessingFilter.doFilterHttp(AbstractPreAuthenticatedProcessingFilter.java:69)
        at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
        at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
        at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
        at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3393)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(Unknown Source)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2140)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
    Caused by: java.lang.ClassCastException: [Ljava.lang.String;
        at org.springframework.web.util.WebUtils.findParameterValue(WebUtils.java:565)
        at org.springframework.webflow.mvc.view.AbstractMvcView.determineEventId(AbstractMvcView.java:317)
        at org.springframework.webflow.mvc.view.AbstractMvcView.getEventId(AbstractMvcView.java:282)
        at org.springframework.webflow.mvc.view.AbstractMvcView.userEventQueued(AbstractMvcView.java:191)
        at org.springframework.webflow.engine.ViewState.resume(ViewState.java:195)
        at org.springframework.webflow.engine.Flow.resume(Flow.java:545)
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259)
        ... 38 more
    2010/06/03-18:44:58 [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' org.springframework.security.context.HttpSessionContextIntegrationFilter DEBUG SecurityContextHolder now cleared, as request processing completed
    <3 juin 2010 18 h 44 CEST> <Error> <HTTP> <BEA-101017> <[weblogic.servlet.internal.WebAppServletContext@52d188 - appName: '_appsdir_monAppli_dir', name: 'monAppli', context-path: '/monAppli'] Root cause of ServletException.
    org.springframework.webflow.execution.FlowExecutionException: Exception thrown in state 'syntheseView' of flow 'consultation'
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.wrap(FlowExecutionImpl.java:569)
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:263)
        at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:163)
        at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
        Truncated. see log file for complete stacktrace
    java.lang.ClassCastException: [Ljava.lang.String;
        at org.springframework.web.util.WebUtils.findParameterValue(WebUtils.java:565)
        at org.springframework.webflow.mvc.view.AbstractMvcView.determineEventId(AbstractMvcView.java:317)
        at org.springframework.webflow.mvc.view.AbstractMvcView.getEventId(AbstractMvcView.java:282)
        at org.springframework.webflow.mvc.view.AbstractMvcView.userEventQueued(AbstractMvcView.java:191)
        at org.springframework.webflow.engine.ViewState.resume(ViewState.java:195)
        Truncated. see log file for complete stacktrace
    En fait, apr�s avoir envoy� le fichier, il semblerait que le flow soit corrompu. et malgr� plusieurs recherches, je ne sais pas quoi faire.
    Donc ma question plus g�n�rale est la suivante : comment impl�mente t-on un download de fichier avec spring webflow ?

    D'avance merci.

  2. #2
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    14
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Par d�faut
    Finalement, j'ai mis le mod�le m�tier dans la session et j'ai appel� un servlet pour construire le fichier Excel.

    Ca ne r�sout pas le probl�me initiale mais �a d�panne.

Discussions similaires

  1. Download d'un fichier
    Par Le Capitaine dans le forum Access
    R�ponses: 3
    Dernier message: 09/01/2007, 12h39
  2. [plugin PHP] Download systematique du fichier ouvert
    Par slim dans le forum Eclipse Java
    R�ponses: 2
    Dernier message: 03/08/2006, 11h39
  3. Download d'un fichier
    Par arno_web dans le forum ASP
    R�ponses: 6
    Dernier message: 19/02/2006, 23h03
  4. [Upload] G�rer les downloads d'un fichier
    Par pirate17 dans le forum Langage
    R�ponses: 5
    Dernier message: 18/02/2006, 11h32
  5. [STRUTS][DOWNLOAD] download d'un fichier via une action
    Par FreshVic dans le forum Struts 1
    R�ponses: 3
    Dernier message: 16/04/2004, 16h38

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