2014-03-18 39 views
0

我已经创建了一个在JBoss 7.2的Gatein下运行的portlet。 (准确地说,这是一个转换为portlet的web应用程序。)我的portlet,Gatein CDI过滤器和Primefaces Upload过滤器(因为我的portlet需要处理上传)需要两个过滤器。在我的portlet.xml文件,我想指定两个过滤器,像这样:在portlet.xml中指定多个过滤器(gatein)

<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> 

然而,当我尝试访问门户,我得到在日志文件中的错误,说没有名为FleetConnector门户。 FleetManagementPortlet(我的战争文件是FleetConnector.war)。有趣的是,在我添加第二个过滤器和过滤器映射块之前,即使portlet名称相同,我也没有收到任何错误。

我一直没有找到任何指定portlet.xml中的多个过滤器的语法的例子,所以我不知道我的语法是正确的。任何帮助,将不胜感激。

回答

0

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