JSF: Problemy z przesyłaniem plików za pomocą komponentu Icefaces
Próbuję się dostaćFileUpload
funkcja współpracująca z Icefacesace: fileEntry ale mójfileUploadListener
na serwerze nie jest wywoływany, oto kod:
kawałek 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>
kawałek 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>
Informacje dziennika:
<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>
Teraz, w obecnym stanie, mogę otworzyć popup nawigacji systemu plików i mogę wybrać plik, ale potemfileUploadListener
powinien zostać trafiony, ale w tej chwili tak się nie dzieje, również jestem w stanie uzyskać pewne dane, które ustawiam po stronie serwera, więc wyjazd na serwer działa tylko z problemem, jaki mamfileUploadListener
nie jest trafiony, jakieś sugestie?
Aktualizacja Nadal szukam odpowiedzi, ponieważ nie udało mi się pomyślnie przesłać pliku na serwer.
Aktualizacja 2 Teraz dostajęContent is not allowed in prolog
wyjątek, nie jestem pewien, co to dokładnie oznacza, tutaj jest 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>