我创建了一个在JBoss 7.2上的Gatein下运行的portlet。 (确切地说,这是一个转换为portlet的Web应用程序。)我的portlet上需要两个过滤器,Gatein CDI过滤器和Primefaces Upload过滤器(因为我的portlet需要处理上传)。在我的portlet.xml文件中,我尝试指定两个过滤器,如下所示:
<filter>
<filter-name>PortletCDIFilter</filter-name>
<filter-class>org.gatein.cdi.PortletCDIFilter</filter-class>
<lifecycle>ACTION_PHASE</lifecycle>
<lifecycle>EVENT_PHASE</lifecycle>
<lifecycle>RENDER_PHASE</lifecycle>
<lifecycle>RESOURCE_PHASE</lifecycle>
</filter>
<filter>
<filter-name>PrimeFacesFileUploadFilter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<lifecycle>ACTION_PHASE</lifecycle>
<lifecycle>EVENT_PHASE</lifecycle>
<lifecycle>RENDER_PHASE</lifecycle>
<lifecycle>RESOURCE_PHASE</lifecycle>
</filter>
<filter-mapping>
<filter-name>PortletCDIFilter</filter-name>
<portlet-name>FleetManagementPortlet</portlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>PrimeFaces FileUploadFilter</filter-name>
<portlet-name>FleetManagementPortlet</portlet-name>
</filter-mapping>
但是,当我尝试访问portlet时,我在日志文件中收到错误,说没有名为FleetConnector.FleetManagementPortlet的portlet(我的war文件是FleetConnector.war)。有趣的是,在我添加第二个过滤器和过滤器映射块之前,我没有收到任何错误,即使portlet名称相同。
我无法在portlet.xml中找到任何语法示例来指定多个过滤器,所以我不确定我的语法是否正确。任何帮助将不胜感激。
答案 0 :(得分:0)
好的,我发现我的配置有什么问题。 PrimeFaces上传过滤器适用于servlet - 不适用于portlet。 API不同。日志中出现错误,表明过滤器没有正确的API,但显示的最后一个错误表明portlet名称不正确,但情况并非如此。我现在将搜索一个与portlet一起使用的上传过滤器。