JSF: Problemas con la carga de archivos usando el componente Icefaces
Estoy tratando de conseguirFileUpload
característica que trabaja con Icefacesace: fileEntry pero mifileUploadListener
En el servidor no se llama, aquí está el código:
pieza xhtml:
<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>
pieza de java
<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>
Información de registro:
<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>
Ahora, en el estado actual, puedo abrir la ventana emergente de navegación del sistema de archivos y puedo seleccionar el archivo pero luegofileUploadListener
Debería ser golpeado, pero en este momento no es así, también puedo obtener algunos datos que configuré en el lado del servidor, por lo que el viaje al servidor solo funciona. El problema que tengo esfileUploadListener
no es golpeado, alguna sugerencia?
Actualizar Todavía estoy buscando una respuesta ya que no he podido cargar el archivo al servidor con éxito.
Actualización 2 Ahora estoy recibiendoContent is not allowed in prolog
excepción, no estoy seguro de qué significa exactamente eso, aquí está el seguimiento de pila:
<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>