FileUpload problem

UI Components for JSF
Post Reply
chun
Posts: 2
Joined: 05 Feb 2010, 04:58

05 Feb 2010, 05:17

Hi all,

I'm a very very new user in primeFaces. I'm developing a page by using RichFaces and SEAM on Weblogic. For some reason, i want to use PrimeFaces FileUpload. After follow the setup in resource guide, the component can be drawn on the page, and the backing-bean works fine (possible to get the text value from bean, e.g. <p:fileUpload label="#{bean.text}" ...>). However, when i click "upload" the Listener CANNOT be triggered (e.g. fileUploadListener="{bean.handleFileUpload}"), even the page shows the progress bar and upload success. Most interesting thing is that, when I use fileUploadListener="{bean.handleFileUpload123}" ( where handleFileUpload123 doesn't exist), the component does NOT throw "method not found" exception.

I believe some configuration should be wrong, can anyone help?

Regards,
Stephen Chan

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

05 Feb 2010, 12:20

Stephen, do you have any seam or richfaces upload filter that takes precendence before PrimeFaces fileupload filter, that is usually the reason for this problem.

"{bean.handleFileUpload123}" is not tried to execute at all so does not cause any error.

chun
Posts: 2
Joined: 05 Feb 2010, 04:58

05 Feb 2010, 12:31

Do I? Here's my web.xml

<display-name>SampleWeb</display-name>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>

<context-param>
<param-name>facelets.SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>

<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>

<context-param>
<param-name>com.sun.faces.allowTextChildren</param-name>
<param-value>true</param-value>
</context-param>

<context-param>
<param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.COMPRESS_STYLE</param-name>
<param-value>false</param-value>
</context-param>

<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>

<ejb-local-ref>
...
</ejb-local-ref>

<session-config>
<session-timeout>15</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>


<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
<init-param>
<param-name>createTempFiles</param-name>
<param-value>true</param-value>
</init-param>

</filter>
<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
<init-param>
<param-name>createTempFiles</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
<listener>
<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.seam</url-pattern>
</servlet-mapping>


<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Seam Resource Servlet</servlet-name>
<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Seam Resource Servlet</servlet-name>
<url-pattern>/seam/resource/*</url-pattern>
</servlet-mapping>

<env-entry>
...
</env-entry>

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

05 Feb 2010, 12:36

Can you do a stack debug to see the execution of the filter order? Also can you post your seam components.xml?

Juan Miguel
Posts: 2
Joined: 07 Feb 2011, 19:46

07 Feb 2011, 20:01

The problem is that the seam filter is capturing all the request. I´ve de same problem. I´ve created a new FileUploadFilter integrated with seam (@Filter), but when a create the MultipartRequest i recieve an¡ http error. I´m researching this problem.

Juan Miguel
Posts: 2
Joined: 07 Feb 2011, 19:46

14 Feb 2011, 16:17

That is our trace, the PrimefacesFileUploadFilter is our PrimeFaces filter, it´s the second filter on the Filter Stack as you can see:

14 feb 2011 15:07:17,906 INFO PrimefacesFileUploadFilter:62 - Usuario: - Construyendo PrimefacesFileUploadFilter
14 feb 2011 15:07:17,906 INFO SeamFilter:96 - Usuario: - Initializing filter: primefacesFileUploadFilter
14 feb 2011 15:07:17,906 DEBUG PrimefacesFileUploadFilter:70 - Usuario: - PrimefacesFileUploadFilter initiated successfully
14 feb 2011 15:07:17,906 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.web.hotDeployFilter
14 feb 2011 15:07:17,906 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.web.loggingFilter
14 feb 2011 15:07:17,906 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.web.ajax4jsfFilter
14 feb 2011 15:07:17,937 INFO CacheManager:67 - Usuario: - Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
14 feb 2011 15:07:17,937 INFO LRUMapCacheFactory:44 - Usuario: - Creating LRUMap cache instance using parameters: {org.richfaces.CONTROL_SKINNING_CLASSES=disable, org.richfaces.SKIN=DEFAULT, org.richfaces.LoadStyleStrategy=DEFAULT, com.sun.faces.enableViewStateIdRendering=false, org.richfaces.CONTROL_SKINNING=disable, facelets.DEVELOPMENT=true, javax.faces.DEFAULT_SUFFIX=.xhtml, com.sun.faces.autoCompleteOffOnViewState=false, org.richfaces.LoadScriptStrategy=DEFAULT, facelets.SKIP_COMMENTS=true}
14 feb 2011 15:07:17,937 INFO LRUMapCacheFactory:48 - Usuario: - Creating LRUMap cache instance of default capacity
14 feb 2011 15:07:17,968 INFO CacheManager:67 - Usuario: - Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
14 feb 2011 15:07:17,968 INFO LRUMapCacheFactory:44 - Usuario: - Creating LRUMap cache instance using parameters: {org.richfaces.CONTROL_SKINNING_CLASSES=disable, org.richfaces.SKIN=DEFAULT, org.richfaces.LoadStyleStrategy=DEFAULT, com.sun.faces.enableViewStateIdRendering=false, org.richfaces.CONTROL_SKINNING=disable, facelets.DEVELOPMENT=true, javax.faces.DEFAULT_SUFFIX=.xhtml, com.sun.faces.autoCompleteOffOnViewState=false, org.richfaces.LoadScriptStrategy=DEFAULT, facelets.SKIP_COMMENTS=true}
14 feb 2011 15:07:17,968 INFO LRUMapCacheFactory:48 - Usuario: - Creating LRUMap cache instance of default capacity
14 feb 2011 15:07:17,968 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.web.redirectFilter
14 feb 2011 15:07:17,968 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.web.exceptionFilter
14 feb 2011 15:07:17,968 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.web.multipartFilter
14 feb 2011 15:07:17,968 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.web.identityFilter
14 feb 2011 15:07:17,968 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.web.contextFilter
14 feb 2011 15:07:17,968 INFO SeamFilter:96 - Usuario: - Initializing filter: org.jboss.seam.servlet.characterEncodingFilter
14 feb 2011 15:07:17,968 INFO PrimefacesFileUploadFilter:62 - Usuario: - Construyendo PrimefacesFileUploadFilter
14 feb 2011 15:07:17,968 DEBUG PrimefacesFileUploadFilter:70 - Usuario: - PrimefacesFileUploadFilter initiated successfully
14-feb-2011 15:07:18 com.sun.faces.lifecycle.ELResolverInitPhaseListener populateFacesELResolverForJsp
INFO: JSF1027: [null] The ELResolvers for JSF were not registered with the JSP container.
14 feb 2011 15:07:34,437 DEBUG PrimefacesFileUploadFilter:80 - Usuario: - Parsing file upload request
14 feb 2011 15:07:34,437 DEBUG PrimefacesFileUploadFilter:86 - Usuario: - Esperando Upload dir
14 feb 2011 15:07:34,437 DEBUG PrimefacesFileUploadFilter:91 - Usuario: - Creando Servlet File Upload
14 feb 2011 15:07:34,437 DEBUG PrimefacesFileUploadFilter:93 - Usuario: - Creando Servlet File PrimefacesMultipartRequest
14 feb 2011 15:07:34,437 DEBUG PrimefacesMultipartRequest:47 - Usuario: - Construyendo PrimefacesMultipartRequest
14 feb 2011 15:07:34,437 DEBUG PrimefacesMultipartRequest:51 - Usuario: - Construyendo PrimefacesMultipartRequest - parseRequest
14 feb 2011 15:07:34,437 DEBUG PrimefacesMultipartRequest:58 - Usuario: - Entra en parseRequest
14 feb 2011 15:07:34,437 DEBUG PrimefacesMultipartRequest:60 - Usuario: - Obteniendo lista de ficheros.
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:62 - Usuario: - Iterando en ficheros.
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:68 - Usuario: - Fichero: null - null
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:68 - Usuario: - Fichero: null - null
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:68 - Usuario: - Fichero: null - null
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:68 - Usuario: - Fichero: null - null
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:68 - Usuario: - Fichero: null - null
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:68 - Usuario: - Fichero: null - null
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:68 - Usuario: - Fichero: application/octet-stream - checkstyle3.jpg
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:68 - Usuario: - Fichero: null - null
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:70 - Usuario: - Iterando en ficheros. FIN
14 feb 2011 15:07:34,468 DEBUG PrimefacesMultipartRequest:53 - Usuario: - Construyendo PrimefacesMultipartRequest - FIN
14 feb 2011 15:07:34,468 DEBUG PrimefacesFileUploadFilter:97 - Usuario: - File upload request parsed succesfully, continuing with filter chain with a wrapped multipart request


I think that the multipart request has been lossed on the filter chain.

jorgwel
Posts: 15
Joined: 21 Feb 2011, 21:16

10 May 2011, 15:59

For future reference:
You can specifically disable Seam's multipart filter by adding this to components.xml:
<web:multipart-filter disabled="true"/>
I found this at: http://seamframework.org/Community/Filu ... SeamFilter

It saves me a lot of stress...and made me love PF again :).

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 39 guests