0

我创建了一个在 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 中指定多个过滤器的语法示例,因此我不确定我的语法是否正确。任何帮助,将不胜感激。

4

1 回答 1

0

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

于 2014-03-26T19:07:20.220 回答