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 :

Probleme avec <rich:fileUpload>


Sujet :

JSF Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Probleme avec <rich:fileUpload>
    Bonjour,

    J'ai un problème lorsque j'essai de charger des fichiers, une exception java.lang.NullPointerException se déclenche au moment du chargement du fichier.

    Ma première question est la suivante, est ce que la valeur de l'attribut fileUploadListener doit correspondre à un attribut d'un bean ou à une méthode ?

    voici la partie de code que j'ai utiliser pour faire l'upload :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <rich:fileUpload acceptedTypes="jpg, gif, png, bmp"
                fileUploadListener="{fileUploadBean.listener}"
                 maxFilesQuantity="#{fileUploadBean.uploadsAvailable}"	 
                 immediateUpload="#{fileUploadBean.autoUpload}"
    	  uploadData="#{fileUploadBean.files}"
                 id="upload" listHeight="60px" listWidth="250px"
                 clearControlLabel="Annuler" uploadControlLabel="Charger"
                 clearAllControlLabel="Effacer tous" doneLabel="Succés" 
                 stopControlLabel="Arreter" addControlLabel="Ajouter...">
                   <a4j:support event="onuploadcomplete" /> 
    </rich:fileUpload>
    Le fichier FileUploadBean :
    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
     
    package file;
     
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.ArrayList;
     
    import org.richfaces.event.UploadEvent;
    import org.richfaces.model.UploadItem;
     
     
    public class FileUploadBean{
     
    	private ArrayList<File> files = new ArrayList<File>();
    	private int uploadsAvailable = 1;
    	private boolean autoUpload = false;
    	private boolean useFlash = false;
     
     
    	public int getSize() {
    		if (getFiles().size()>0){
    			return getFiles().size();
    		}else 
    		{
    			return 0;
    		}
    	}
     
    	public FileUploadBean() {
    	}
     
    	public synchronized void paint(OutputStream stream, Object object) throws IOException {
    		stream.write(getFiles().get((Integer)object).getData());
    	}
    	public synchronized void listener(UploadEvent event) throws Exception{
    	    UploadItem item = event.getUploadItem();
    	    File file = new File();
    	    file.setLength(item.getData().length);
    	    file.setName(item.getFileName());
    	    file.setData(item.getData());
    	    files.add(file);
    	    uploadsAvailable--;
    	}
     
    	public String clearUploadData() {
    		files.clear();
    		setUploadsAvailable(5);
    		return null;
    	}
     
    	public long getTimeStamp(){
    		return System.currentTimeMillis();
    	}
     
    	public ArrayList<File> getFiles() {
    		return files;
    	}
     
    	public void setFiles(ArrayList<File> files) { 
    		this.files = files;
    	}
     
    	public int getUploadsAvailable() {
    		return uploadsAvailable;
    	}
     
    	public void setUploadsAvailable(int uploadsAvailable) {
    		this.uploadsAvailable = uploadsAvailable;
    	}
     
    	public boolean isAutoUpload() {
    		return autoUpload;
    	}
     
    	public void setAutoUpload(boolean autoUpload) {
    		this.autoUpload = autoUpload;
    	}
     
    	public boolean isUseFlash() {
    		return useFlash;
    	}
     
    	public void setUseFlash(boolean useFlash) {
    		this.useFlash = useFlash;
    	}
     
    }
    Le fichier File :
    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
     
    package file;
     
    public class File {
     
    	private String Name;
    	private String mime;
    	private long length;
    	private byte[] data;
     
     
     
    	public byte[] getData() {
    		return data;
    	}
    	public void setData(byte[] data) {
    		this.data = data;
    	}
     
    	public String getName() {
    		return Name;
    	}
    	public void setName(String name) {
    		Name = name;
    		int extDot = name.lastIndexOf('.');
    		if(extDot > 0){
    			String extension = name.substring(extDot +1);
    			if("bmp".equals(extension)){
    				mime="image/bmp";
    			} else if("jpg".equals(extension)){
    				mime="image/jpeg";
    			} else if("gif".equals(extension)){
    				mime="image/gif";
    			} else if("png".equals(extension)){
    				mime="image/png";
    			} else {
    				mime = "image/unknown";
    			}
    		}
    	}
     
    	public long getLength() {
    		return length;
    	}
    	public void setLength(long length) {
    		this.length = length;
    	}
     
    	public String getMime(){
    		return mime;
    	}
    }
    Finalement j'ai rajouté deux paramètres dans le filter au niveau du fichier web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <filter>
      <display-name>RichFaces Filter</display-name>
      <filter-name>richfaces</filter-name>
      <filter-class>org.ajax4jsf.Filter</filter-class>
      <init-param>
      <param-name>createTempFiles</param-name>
      <param-value>true</param-value>
      </init-param>
      <init-param>
      <param-name>maxRequestSize</param-name>
      <param-value>20000000</param-value>
      </init-param>
     </filter>

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Dosolé, j'ai oublié de mettre le descriptif de l'exception :
    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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
     
    [lifecycle] org.apache.jasper.el.JspELException: /index.jsp(121,9) '#{fileUploadBean.listener}' java.lang.NullPointerException
    javax.faces.el.EvaluationException: org.apache.jasper.el.JspELException: /index.jsp(121,9) '#{fileUploadBean.listener}' java.lang.NullPointerException
    	at org.richfaces.webapp.taglib.MethodBindingMethodExpressionAdaptor.invoke(MethodBindingMethodExpressionAdaptor.java:56)
    	at org.richfaces.component.UIFileUpload.broadcast(UIFileUpload.java:158)
    	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
    	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:294)
    	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
    	at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
    	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
    	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
    	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:340)
    	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:189)
    	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:91)
    	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:92)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:325)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    Caused by: org.apache.jasper.el.JspELException: /index.jsp(121,9) '#{fileUploadBean.listener}' java.lang.NullPointerException
    	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:77)
    	at org.richfaces.webapp.taglib.MethodBindingMethodExpressionAdaptor.invoke(MethodBindingMethodExpressionAdaptor.java:52)
    	... 34 more
    Caused by: java.lang.NullPointerException
    	at file.FileUploadBean.listener(FileUploadBean.java:37)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:170)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
    	... 35 more
    14:46:41,809 ERROR [lifecycle] JSF1054: (Phase ID: APPLY_REQUEST_VALUES 2, View ID: /index.jsp) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@3a2471]
    14:46:41,809 ERROR [BaseXMLFilter] Exception in the filter chain
    javax.servlet.ServletException: org.apache.jasper.el.JspELException: /index.jsp(121,9) '#{fileUploadBean.listener}' java.lang.NullPointerException
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
    	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
    	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:340)
    	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:189)
    	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:91)
    	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:92)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:325)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    Caused by: javax.faces.el.EvaluationException: org.apache.jasper.el.JspELException: /index.jsp(121,9) '#{fileUploadBean.listener}' java.lang.NullPointerException
    	at org.richfaces.webapp.taglib.MethodBindingMethodExpressionAdaptor.invoke(MethodBindingMethodExpressionAdaptor.java:56)
    	at org.richfaces.component.UIFileUpload.broadcast(UIFileUpload.java:158)
    	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
    	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:294)
    	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
    	at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
    	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    	... 25 more
    Caused by: org.apache.jasper.el.JspELException: /index.jsp(121,9) '#{fileUploadBean.listener}' java.lang.NullPointerException
    	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:77)
    	at org.richfaces.webapp.taglib.MethodBindingMethodExpressionAdaptor.invoke(MethodBindingMethodExpressionAdaptor.java:52)
    	... 34 more
    Caused by: java.lang.NullPointerException
    	at file.FileUploadBean.listener(FileUploadBean.java:37)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:170)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
    	... 35 more
    14:46:41,887 ERROR [[Faces Servlet]] "Servlet.service()" pour la servlet Faces Servlet a g�n�r� une exception
    java.lang.NullPointerException
    	at file.FileUploadBean.listener(FileUploadBean.java:37)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:170)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
    	at org.richfaces.webapp.taglib.MethodBindingMethodExpressionAdaptor.invoke(MethodBindingMethodExpressionAdaptor.java:52)
    	at org.richfaces.component.UIFileUpload.broadcast(UIFileUpload.java:158)
    	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
    	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:294)
    	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
    	at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
    	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
    	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
    	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:340)
    	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:189)
    	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:91)
    	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:92)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:325)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    J'utilise la librairie 3.2.2GA

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 158
    Points : 93
    Points
    93
    Par défaut
    Ceci doit pointer vers une méthode, un listener plus précisément.
    Voici la méthode qui doit remplir se rôle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void listener(UploadEvent event)
    {
        // event contient toutes les informations sur l 'événement et 
    }
    PS: pour que ca marche correctement il faut avoir correctement implémenter les listener de richfaces et de JSF.

  4. #4
    En attente de confirmation mail
    Inscrit en
    Juin 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 76
    Points : 58
    Points
    58
    Par défaut
    tiens voila un exemple qui fonctionne

    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
     
     
    public class FileBean implements FileUploadListener, Serializable{
     
    	private static Logger logger = Logger.getLogger(FileBean.class);
    	private File file = new File();
    	private String fileDownloadedAudio;
    	public FileBean(){}
     
    	public String getFileDownloadedAudio(){
    		return fileDownloadedAudio;
    	}
    	public void setFileDownloadedAudio(String fileDownloadedAudio){
    		this.fileDownloadedAudio = fileDownloadedAudio;
    	}
     
    	public void listener(UploadEvent event)throws IOException{
    		logger.debug("Listener de FILEBEAN");
    		String path;
    		SimpleTreeBean simpleTreeBean= (SimpleTreeBean) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(FacesContext.getCurrentInstance().getELContext(), null, "simpleTreeBean");
    		file.setLength(event.getUploadItem().getData().length);
    		file.setName(event.getUploadItem().getFileName());
    		file.setData(event.getUploadItem().getData());
    		try
    		{
    			path = ManagerDirectories.createPath(simpleTreeBean.getIdService(), simpleTreeBean.getVersionCourant().getName(), file.getName());
    			fileDownloadedAudio = path;
    			java.io.File f = new java.io.File(path);
    			if(f.exists())
    			{
    				logger.debug("le fichier existe déja");
    			}
    			else
    			{
    				java.io.FileOutputStream myfile = new java.io.FileOutputStream(path);
    				java.io.DataOutputStream sortie = new java.io.DataOutputStream(myfile);
    				sortie.write(file.getData());
    			}
    			logger.debug("Le chemin du fichier telechargé est " + path);
    		}
    		catch(IOException e)
    		{
    			e.printStackTrace();
    		}
    	}

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    le problème c'est que la fonction "item.getData()" retourne la valeur null.
    Donc ma fonction listener est bien appelée. c'est au niveau de l'appel cité plus haut que l'exception se déclenche. est ce que quelqu'un a une idée sur ce problème ?
    Merci.

  6. #6
    En attente de confirmation mail
    Inscrit en
    Juin 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 76
    Points : 58
    Points
    58
    Par défaut
    dsl

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Saut,

    le problème est que uploadData prend en paramètre une liste d'objets de type org.richfaces.model.UploadItem ,

    change le type de ta liste et réessaye, tu peux tester sans Listener.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    la version de RichFaces que j'utilise est : 3.2.2GA. c'est celle utilisée dans la démo officielle de RichFaces.
    Mon uploadData ne contient pas une liste d'objets de type uploadItem mais une liste d'objets de type File :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uploadData="#{fileUploadBean.files}"
    Est ce qu'il faut changer le filtre au niveau du fichier web.xml ?

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    si tu regarde bien la demo, l'exemple utilise le listener et pas uploadData!

    donc, tu peux utiliser uploadData en immediateUpload sans fileUploadListener.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    J'ai trouvé la solution à mon problème, enfin

    J'ai trouvé le même problème sur ce lien : http://www.jboss.com/index.html?modu...topic&t=141934.

    Il faut changer la valeur du paramètre createTempFiles en mettant false au lien de true au niveau du filtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <filter>
      <display-name>RichFaces Filter</display-name>
      <filter-name>richfaces</filter-name>
      <filter-class>org.ajax4jsf.Filter</filter-class>
      <init-param>
      <param-name>createTempFiles</param-name>
      <param-value>false</param-value>
      </init-param>
      <init-param>
      <param-name>maxRequestSize</param-name>
      <param-value>20000000</param-value>
      </init-param>
     </filter>
    Voila, merci à tous pour vos réponses.

  11. #11
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    avec createTempFiles=true il faut utiliser getFile, sinon getData dans le listener.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec rich:fileUpload
    Par aniss77 dans le forum JSF
    Réponses: 23
    Dernier message: 20/02/2010, 13h08
  2. problem avec rich:paint2D
    Par iviath dans le forum JSF
    Réponses: 1
    Dernier message: 20/10/2008, 17h04
  3. Probleme avec Rich:panelMenu
    Par midos dans le forum JSF
    Réponses: 1
    Dernier message: 08/09/2008, 08h29
  4. problem avec modalpanel de rich
    Par ghnawfal dans le forum JSF
    Réponses: 3
    Dernier message: 27/08/2008, 15h44
  5. Probleme avec rich:fileupload
    Par solarien dans le forum JSF
    Réponses: 6
    Dernier message: 21/08/2008, 17h06

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