L'événement Primefaces FileUpload ne se déclenche pas - JSF 2.0
J'ai posté ma question sur le Primefaces forum mais personne n'a répondu alors j'ai pensé que je voudrais essayer ici.
J'ai été de tenter d'obtenir fileUpload travailler pendant un certain temps maintenant. Je suis en train d'exécuter la RC2 construire avec mojarra 2.0.3 et Tomcat 7.
J'ai une boîte de dialogue qui contient le composant fileUpload comme si.
<p:dialog id="uploadFileDialog" >
<h:form id="uplaodFileForm" prependId="false" enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{fileUploadController.uploadFile} auto="true"/>
</h:form>
</p:dialog>
La fileUploadController ressemble à ceci
public class FileUploadController {
public void uploadFile(FileUploadEvent event) {
byte[] file = event.getFile().getContents();
System.out.println("MADE IT INTO FILE UPLOAD !!! ");
}
}
Pour une raison quelconque, quand le fichier est téléchargé jamais déclenche la fileUploadEvent et il n'est jamais dans le contrôleur. Le téléchargement ressemble à son travail, le flash partie rend et donne l'impression de faire quelque chose, mais pas de backing bean est jamais appelé. Je peux paraître comprendre ce que je fais de mal et j'ai lu à peu près tous les post sur le téléchargement d'un fichier à l'aide de primefaces. Quelqu'un sait ce que je fais de mal?
source d'informationauteur DesireToUpload
Vous devez vous connecter pour publier un commentaire.
PrimeFaces fileupload utilise Apache Commons FileUpload sous les couvertures qui à son tour a une autre dépendance, la Apache Commons IO. S'assurer que vous avez tous les deux JAR dans votre
/WEB-INF/lib
.Mise à jour: selon les commentaires, vous devez également vous assurer que le téléchargement de filtre est déclaré dans les
web.xml
que par la guide de l'utilisateur,:Et vous devez également vous assurer qu'il n'y a pas d'autres filtres avant dans le
web.xml
qui peut être la lecture de laHttpServletRequest#getInputStream()
car il peut être lu qu'une seule fois.J'ai aussi connu un problème similaire. Le correctif pour moi (à l'aide d'un projet Maven) consiste à ajouter les dépendances suivantes dans le pom.xml fichier:
C'est l'équivalent d'avoir des correspondants .les fichiers jar dans votre WEB-INF/lib, alors essayez de le faire si ce n'est pas un projet Maven.
qui est correct, vous devez ajouter
ET, plus tard, ce
en option, si votre utilisation de maven ajouter ce dépendances
je pense avoir résolu votre problème.
Vérifier sur votre web.xml la présence de:
Vous devez supprimer cette option ou le mettre ne valeur True (valeur par défaut).
J'ai le même problème, j'ai résolu en ajoutant
comme BalusC dit.
mais en ajoutant ceci :
Car, par défaut, dans J2EE 6 cette partie est facultative JSF 2.0 Servlet s'active automatiquement lorsque l'WEB-INF/faces-config.xml descripteur de fichier est présent.
Mais il faut active correctement PrimeFaces Filtre
Jboss 6.1.0.Final /PrimeFaces 3.0.RC2
Dans Websphere 7 l'événement est déclenché parce que quand je sélectionne un fichier et appuyez sur télécharger, je peux voir la barre de téléchargement qui grandissent.
Le problème est que dans Websphere 7 je suppose qu'il y a un filtre qui consomment HttpRequest et lors de l'arrivée à l'écouteur d'événement est tout simplement consommé donc ne pas avoir de données 🙁
Pas de message sont présents dans le journal de débogage est très compliquer. Il existe une trace ou un enregistreur de données afin de permettre au JSF 2 Mojarra 2 et PrimeFaces 3.4.2?