JSF: Probleme beim Hochladen von Dateien mit der Icefaces-Komponente
Ich versuche zu bekommenFileUpload
Funktion, die mit Icefaces arbeitetace: fileEntry aber meinfileUploadListener
Auf dem Server wird nicht aufgerufen, hier ist der Code:
xhtml piece:
<code><html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ace="http://www.icefaces.org/icefaces/components" xmlns:ice-cc="http://www.icesoft.com/icefaces-composite-comps" xmlns:f="http://java.sun.com/jsf/core" xmlns:ice="http://www.icesoft.com/icefaces/component"> <h:head> <link rel="stylesheet" type="text/css" href="/xmlhttp/css/rime/rime.css"/> </h:head> <h:body> <h:form enctype="multipart/form-data"> <ace:fileEntry id="fileEntryComp" label="File Entry" relativePath="uploaded" fileEntryListener="#{fileUpload.uploadFile}"/> <h:commandButton value="Upload File"/> </h:form> </h:body> </html> </code>
Java-Stück
<code>public void uploadFile(FileEntryEvent event) { FileEntry fileEntry = (FileEntry) event.getSource(); FileEntryResults results = fileEntry.getResults(); for (FileEntryResults.FileInfo fileInfo : results.getFiles()) { if (fileInfo.isSaved()) { log.debug("########### FILE IS SAVED ########"); } } } </code>
Protokollinformationen:
<code> FINE lifecycle - Entering RestoreViewPhase FINE lifecycle - New request: creating a view for /trade_entry/UploadBlotter.xhtml FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - Created component with component type of 'javax.faces.ViewRoot' FINE application - Created new view for /trade_entry/UploadBlotter.xhtml FINE application - RenderKitId for this view as determined by calculateRenderKitId HTML_BASIC FINE lifecycle - Exiting RestoreViewPhase FINE timing - [TIMING] - [2ms] : Execution time for phase (including any PhaseListeners) -> RESTORE_VIEW 1 FINE lifecycle - render(com.sun.faces.context.FacesContextImpl@1dc6429) FINE lifecycle - Entering RenderResponsePhase FINE lifecycle - About to render view /trade_entry/UploadBlotter.xhtml FINE application - Building View: /trade_entry/UploadBlotter.xhtml FINE application - Created component with component type of 'javax.faces.Output' FINE component - /trade_entry/UploadBlotter.xhtml @7,9 <h:head> Component[-1351329185_508ba5ae] Created: javax .faces.component.UIOutput FINE application - Created component with component type of 'javax.faces.Output' FINE component - /trade_entry/UploadBlotter.xhtml @10,9 <h:body> Component[-1351329185_508ba588] Created: java x.faces.component.UIOutput FINE application - Created component with component type of 'javax.faces.HtmlForm' FINE component - /trade_entry/UploadBlotter.xhtml @11,13 <h:form> Component[-1351329185_508ba5e2] Created: jav ax.faces.component.html.HtmlForm FINE application - Created component with component type of 'org.icefaces.ace.component.FileEntry' FINE application - Created component with component type of 'javax.faces.Output' FINE application - Created component with component type of 'javax.faces.ComponentResourceContainer' FINE application - Created component with component type of 'javax.faces.Output' FINE application - Created component with component type of 'javax.faces.Output' FINE component - /trade_entry/UploadBlotter.xhtml @15,70 <ace:fileEntry> Component[-1351329185_508ba5fc] Creat ed: org.icefaces.ace.component.fileentry.FileEntry FINE application - Created component with component type of 'javax.faces.HtmlCommandButton' FINE component - /trade_entry/UploadBlotter.xhtml @16,47 <h:commandButton> Component[-1351329185_508ba5c9] Cre ated: javax.faces.component.html.HtmlCommandButton FINE application - Created component with component type of 'javax.faces.ComponentResourceContainer' FINE component - No renderer-type for component j_id1 FINE component - No renderer-type for component javax_faces_location_BODY FINE application - Rendering View: /trade_entry/UploadBlotter.xhtml FINE component - No renderer-type for component javax_faces_location_HEAD FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE component - No renderer-type for component _captureFileOnsubmit FINE application - Begin writing marker for viewId /trade_entry/UploadBlotter.xhtml FINE application - End writing marker for viewId /trade_entry/UploadBlotter.xhtml FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - URL pattern of the FacesServlet executing the current request .jsp FINE application - Begin writing marker for viewId /trade_entry/UploadBlotter.xhtml FINE application - End writing marker for viewId /trade_entry/UploadBlotter.xhtml FINE lifecycle - Exiting RenderResponsePhase </code>
Jetzt kann ich im aktuellen Status das Popup-Fenster für die Dateisystemnavigation öffnen und dann die Datei auswählenfileUploadListener
sollte getroffen werden, aber im Moment nicht, auch ich bin in der Lage, einige Daten zu bekommen, die ich auf der Serverseite eingestellt habe, so dass die Server-Reise funktioniert, ist nur ein Problem, das ich habefileUploadListener
ist nicht getroffen, irgendwelche Vorschläge?
Aktualisieren Ich suche immer noch nach einer Antwort, da ich die Datei nicht erfolgreich auf den Server hochladen konnte.
Update 2 Jetzt bekomme ichContent is not allowed in prolog
Ausnahme, nicht sicher, was genau das bedeutet, hier ist der Stacktrace:
<code> ERROR [Faces Servlet] - Servlet.service() for servlet Faces Servlet threw exception: javax.faces.view.facelets.Facele tException: Error Parsing /trade_entry/UploadBlotter.xhtml: Error Traced[line: 2] Content is not allowed in prolog. at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:417) [:2.1.7-SNAPSHOT] at com.sun.faces.facelets.compiler.SAXCompiler.doMetadataCompile(SAXCompiler.java:400) [:2.1.7-SNAPSHOT] at com.sun.faces.facelets.compiler.Compiler.metadataCompile(Compiler.java:130) [:2.1.7-SNAPSHOT] at com.sun.faces.facelets.impl.DefaultFaceletFactory.createMetadataFacelet(DefaultFaceletFactory.java:327) [:2.1.7-SNAPSHOT] at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$200(DefaultFaceletFactory.java:93) [:2.1.7-SNAPSHOT] at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:166) [:2.1.7-SNAPSHOT] at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:164) [:2.1.7-SNAPSHOT] at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:94) [:2.1.7-SNAPSHOT] at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:89) [:2.1.7-SNAPSHOT] at com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99) [:2.1.7-SNAPSHOT] </code>