2014-03-18 21 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的上載過濾器。