EL Exception, property not found exception at runtime

Hi i m getting EL Exception, property not found excpetion, though i have method in my bean,

dont understand why its failing to get property from the below method.

 

 

public void listener(FileUploadEvent event) throws IOException {

        file = event.getUploadedFile();

    }

 

 

Completre stack trace for the error.

 

SEVERE: Error Rendering View[/examples/fileupload.xhtml]

javax.el.ELException: /examples/fileupload.xhtml: Property 'listener' not found on type org.richfaces.demo.FileUploadBean

          at com.sun.faces.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:94)

          at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82)

          at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183)

          at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)

          at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)

          at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)

          at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)

          at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)

          at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)

          at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)

          at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)

          at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)

          at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

          at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)

          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)

          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

          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:175)

          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

          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:263)

          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)

          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

          at java.lang.Thread.run(Thread.java:662)

 

 

 

 

  xhtml and beans classes are..

 

 

fileupload.xhtml

 


 

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"

          xmlns:h="http://java.sun.com/jsf/html"

          xmlns:f="http://java.sun.com/jsf/core"

          xmlns:ui="http://java.sun.com/jsf/facelets"

          xmlns:a4j="http://richfaces.org/a4j"

          xmlns:fu="http://richfaces.org/input">

<!--

JBoss, Home of Professional Open Source

Copyright ${year}, Red Hat, Inc. and individual contributors

by the @authors tag. See the copyright.txt in the distribution for a

full listing of individual contributors.

 

 

 

 

This is free software; you can redistribute it and/or modify it

under the terms of the GNU Lesser General Public License as

published by the Free Software Foundation; either version 2.1 of

the License, or (at your option) any later version.

 

 

 

 

This software is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

Lesser General Public License for more details.

 

 

 

 

You should have received a copy of the GNU Lesser General Public

License along with this software; if not, write to the Free

Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA

02110-1301 USA, or see the FSF site: http://www.fsf.org.

-->

          <h:head>

                    <title>Richfaces FileUpload Demo</title>

                    <style>

                    <!--

                              .fu .rf-fu-lst {

                                        height: 500px;

                              }

                    -->

                    </style>

          </h:head>

          <h:body>

                    <h:form id="form">

                              <h:outputText value="Skin: "/>

                              <h:selectOneMenu value="#{skinBean.skin}" onchange="submit();">

                                        <f:selectItems value="#{skinBean.skins}"/>

                              </h:selectOneMenu>

                              <br />

                              <script type="text/javascript">

                              <!--

                              var onfilesubmit = function (event) {

                                        var data = event.rf.data;

                                        RichFaces.log.info(jQuery("<span><b>onfilesubmit: </b>" + data.name + " " + data.state + "</span>"));

                              };

 

                              var onuploadcomplete = function (event) {

                                        var data = event.rf.data;

                                        var str = "";

                                        RichFaces.log.info(jQuery("<b>onuploadcomplete:</b>"));

                                        for (var i in data) {

                                                  var item = data[i];

                                                  RichFaces.log.info("    " + item.name + " " + item.state);

                                        }

                              };

                              //-->

                              </script>

                              <fu:fileUpload id="fu" acceptedTypes="#{fileUploadBean.acceptedTypes}"

                                                  disabled="#{fileUploadBean.disabled}"

                                                  fileUploadListener="#{fileUploadBean.listener}"

                                                  noDuplicate="#{fileUploadBean.noDuplicate}"

                                                  onfilesubmit="onfilesubmit(event)"

                                                  onuploadcomplete="onuploadcomplete(event)"/>

                              <h:outputText value="File name:" />

                              <a4j:outputPanel ajaxRendered="true">#{fileUploadBean.file.name}</a4j:outputPanel>

            <br />

            <h:outputText value="Attribute name: "/>

            <h:inputText id="name"/>

            <h:outputText value="Attribute value: "/>

            <h:inputText id="value"/>

            <h:commandButton value="Update attribute">

                    <f:ajax render="fu" execute="name value" listener="#{fileUploadBean.updateAttribute}"/>

            </h:commandButton>

            <br />

            <h:outputText value="AcceptedTypes: " />

            <h:inputText value="#{fileUploadBean.acceptedTypes}">

                    <f:ajax render="fu"/>

            </h:inputText>

            <br />

            <h:outputText value="Disabled: " />

            <h:selectBooleanCheckbox value="#{fileUploadBean.disabled}">

                    <f:ajax render="fu"/>

            </h:selectBooleanCheckbox>

            <br />

            <h:outputText value="NoDuplicate: " />

            <h:selectBooleanCheckbox value="#{fileUploadBean.noDuplicate}">

                    <f:ajax render="fu"/>

            </h:selectBooleanCheckbox>

            <br />

                              <input type="submit" />

                              <a4j:log />

                    </h:form>

          </h:body>

</html>

 

 

 

FileUploadBean.java

 

package org.richfaces.demo;

import java.io.IOException;

import java.io.OutputStream;

import java.io.Serializable;

import java.util.ArrayList;

 

 

import javax.faces.bean.ManagedBean;

import javax.faces.bean.SessionScoped;

 

 

import org.richfaces.event.FileUploadEvent;

import org.richfaces.model.UploadedFile;

 

 

/**

* @author Ilya Shaikovsky

*

*/

@ManagedBean

@SessionScoped

public class FileUploadBean implements Serializable {

 

 

           private String acceptedTypes;

           private boolean disabled = false;

              public String getAcceptedTypes() {

                    return acceptedTypes;

          }

 

 

          public void setAcceptedTypes(String acceptedTypes) {

                    this.acceptedTypes = acceptedTypes;

          }

 

 

          public boolean isDisabled() {

                    return disabled;

          }

 

 

          public void setDisabled(boolean disabled) {

                    this.disabled = disabled;

          }

 

 

          public boolean isNoDuplicate() {

                    return noDuplicate;

          }

 

 

          public void setNoDuplicate(boolean noDuplicate) {

                    this.noDuplicate = noDuplicate;

          }

 

 

                    private boolean noDuplicate = false;

             

    private ArrayList<UploadedImage> files = new ArrayList<UploadedImage>();

 

 

    public void paint(OutputStream stream, Object object) throws IOException {

        stream.write(getFiles().get((Integer) object).getData());

        stream.close();

    }

 

 

    public void listener(FileUploadEvent event) throws IOException {

        UploadedFile item = event.getUploadedFile();

        UploadedImage file = new UploadedImage();

        file.setLength(item.getData().length);

        file.setName(item.getName());

        file.setData(item.getData());

        files.add(file);

    }

 

 

    public String clearUploadData() {

        files.clear();

        return null;

    }

 

 

    public int getSize() {

        if (getFiles().size() > 0) {

            return getFiles().size();

        } else {

            return 0;

        }

    }

 

 

    public long getTimeStamp() {

        return System.currentTimeMillis();

    }

 

 

    public ArrayList<UploadedImage> getFiles() {

        return files;

    }

 

 

    public void setFiles(ArrayList<UploadedImage> files) {

        this.files = files;

    }

 

}