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