Jsf RichFaces文件上传上的javax.el.ELException

Jsf RichFaces文件上传上的javax.el.ELException,jsf,file-upload,richfaces,Jsf,File Upload,Richfaces,如果我在使用java 1.8的tomcat 8上部署我的webapp,我会遇到以下错误: org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() 对于路径为[/mywebapp]的上下文中的servlet[Faces servlet] 异常[/fileupload.xhtml:在类型“”上找不到属性“listener” mywebapp.UploadController]具有根本原因javax.el.ELExc

如果我在使用java 1.8的tomcat 8上部署我的webapp,我会遇到以下错误:

org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() 对于路径为[/mywebapp]的上下文中的servlet[Faces servlet] 异常[/fileupload.xhtml:在类型“”上找不到属性“listener” mywebapp.UploadController]具有根本原因javax.el.ELException: /fileupload.xhtml:在类型上找不到属性“listener” mywebapp.UploadController

fileupload.xhtml的代码:

 <rich:fileUpload fileUploadListener="#{uploadController.listener}"
                         id="dataupload"
                         listHeight="100px"
                         maxFilesQuantity="100"/>
如果我用jetty在本地启动我的webapp,一切都会完美运行


错误在哪里?

此问题表明运行时类路径中缺少RichFaces,因此所有RichFaces标记/组件都被视为纯文本,因此这些标记中的所有EL表达式最终都会表现为值表达式(就像使用纯HTML一样)。要排除一个和另一个,其他RichFaces组件工作正常吗?(或者您仅仅是将其用于上传功能?)您是否以不同的方式为这两台服务器构建?似乎每个方法调用都会受到影响。例如,我还有一个commandButton,它的actionListener被误解了。
public class UploadController {
...
    public void listener(FileUploadEvent e) throws Exception {
       final UploadedFile item = e.getUploadedFile();
       ...
    }
}