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

时间:2014-03-18 22:05:14

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

我无法在portlet.xml中找到任何语法示例来指定多个过滤器,所以我不确定我的语法是否正确。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

好的,我发现我的配置有什么问题。 PrimeFaces上传过滤器适用于servlet - 不适用于portlet。 API不同。日志中出现错误,表明过滤器没有正确的API,但显示的最后一个错误表明portlet名称不正确,但情况并非如此。我现在将搜索一个与portlet一起使用的上传过滤器。