Facelets a4j:mediaOutput error
nksaran Jan 24, 2012 2:10 PMI am using the code from the demosite. I have add fileupload code to a facelets component so that I can use the file uploader in multiple places. If I declare FileUploaderBean as Array or List in my bean (AdminBean which is in Session scope), then a4j:mediaOutput throws follwing error after upload is done successfuly and when its time to call the paint method to show the uploaded file. If I dont declare FileUploadBean as Array or List, then everthing works fine.
javax.el.PropertyNotFoundException: /WEB-INF/facelets/components/fileUploadMini.xhtml @27,88 createContent="#{fu.paint}": Target Unreachable, identifier 'fu' resolved to null
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
at org.richfaces.resource.MediaOutputResource.encode(MediaOutputResource.java:62)
at org.richfaces.resource.UserResourceWrapperImpl.encode(UserResourceWrapperImpl.java:188)
at org.richfaces.resource.ResourceHandlerImpl.handleResourceRequest(ResourceHandlerImpl.java:222)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
at org.apache.myfaces.custom.captcha.CAPTCHAResourceHandlerWrapper.handleResourceRequest(CAPTCHAResourceHandlerWrapper.java:208)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Here is the Fie Upload Facelets Component (fileUploadMini.xhtml):
<ui:composition>
<a4j:region>
<h:panelGrid id="#{idPrefix}fileUploadPG" cellpadding="0" cellspacing="0">
<rich:fileUpload fileUploadListener="#{fu.addListener}" autoclear="true" maxFilesQuantity="#{fu.uploadsAvailable}" immediateUpload="#{fu.autoUpload}" acceptedTypes="jpg, gif, png, bmp" allowFlash="#{fu.useFlash}" noDuplicate="true" addLabel="Add Image">
<a4j:ajax event="uploadcomplete" render="#{idPrefix}info" />
</rich:fileUpload>
<h:panelGroup id="#{idPrefix}info">
<h:outputText value="No files currently uploaded" rendered="#{fu.size==0 and showNoFileUploadedText}" />
<rich:dataGrid value="#{fu.files}" var="file" rowKeyVar="row">
<h:panelGrid styleClass="alignCenter" columns="2" cellpadding="0" cellspacing="0">
<a4j:mediaOutput element="img" mimeType="#{file.mime}" createContent="#{fu.paint}" value="#{row}" style="width:50px; height:50px;" cacheable="false">
<f:param value="#{fu.timeStamp}" name="time"/>
</a4j:mediaOutput><br/>
<a4j:commandLink value="Delete Image" action="#{fu.removeListener}" render="#{idPrefix}fileUploadPG">
<f:param value="#{row}" name="fileToBeRemovedRowNo"></f:param>
</a4j:commandLink>
</h:panelGrid>
</rich:dataGrid>
</h:panelGroup>
</h:panelGrid>
</a4j:region>
</ui:composition>
If it helps following are the versions I am using:
JDK1.6.0_23-b05
richfaces-4.1.0.Final
Can someone please help?