在portlet.xml (gatein)中指定多个过滤器



我已经创建了一个在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的portlet。FleetManagementPortlet(我的war文件是FleetConnector.war)。有趣的是,在添加第二个过滤器和过滤器映射块之前,我没有得到任何错误,即使portlet名称是相同的。

我没能找到任何在portlet.xml中指定多个过滤器的语法示例,所以我不确定我的语法是否正确。

好了,我找到了配置的问题所在。PrimeFaces上传过滤器用于servlet,而不是portlet。API是不同的。日志中有一个错误表明过滤器没有正确的API,但是最后显示的错误表明portlet名称不正确,事实并非如此。现在,我将搜索与portlet一起工作的上传过滤器。

最新更新