Bonjour,

J'essaie actuellement de convertir une application web en portlet sous liferay.

Ma page d'accueil s'affiche bien dans la portlet (soucis de styles mis à part) et j'ai réussi à récupérer l'authentification de liferay.

Je rencontre un problème lors de l'appel d'une action redirigeant vers une autre page, en effet les pages appellées sortent du contexte de la portlet, ce qui a pour effet de terminer la conversation seam.

Je n'ai pas d'erreur, mais ma page se réaffiche hors portlet (sûrement dû au no-conversation-view-id de pages.xml).
En gros l'URL appellée est de type http://localhost:8080/appliweb/search/page.seam, au lieu d'être gérée par liferay.
Je reçois juste le message suivant au moment de l'appel à l'action :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
17:10:50,359 INFO  [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=null[severity=(WARN 1), summary=(The conversation ended, timed out or was processing another request), detail=(The conversation ended, timed out or was processing another request)]
Voici le code de pages.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<pages xmlns="http://jboss.com/products/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd"
    no-conversation-view-id="/search/list.xhtml">
 
    <conversation name="ViewSearch" parameter-name="searchId" parameter-value="#{viewedSearch.id}" />
 
    <page view-id="/search/list.xhtml">
 
        <navigation from-action="#{searchView.selectSearch(s)}">
            <redirect view-id="/search/view.xhtml" />
        </navigation>
 
    </page>
 
</pages>
Code de faces-config.xml:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<faces-config>
 
    <application>
        <view-handler>com.icesoft.faces.facelets.D2DSeamFaceletViewHandler</view-handler>
    </application>
 
</faces-config>
Code de list.xhtml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<ui:define name="content">
    <ice:form>
        <ice:dataTable id="searchTable" rows="10"
            columnClasses="typeColumn, titleColumn, startDateColumn, endDateColumn, leadingUnitColumn"
            rowClasses="oddRow, evenRow" sortColumn="#{searchList.sortedColumn}"
            sortAscending="#{searchList.ascending}" value="#{searchList.list}" var="s" 
            scrollHeight="310px" scrollable="true" columnWidths="24px,560px,70px,70px,200px">
 
            <ice:column id="typeColumn">
 
                <ice:graphicImage url="/img/search/image.png"
                    rendered="#{searchAxesList.getType(s) == 'OK'}"/>
 
                <ice:rowSelector value="false" selectionAction="#{searchView.select(s)}" />
            </ice:column>
 
        </ice:dataTable>
 
    </ice:form>
</ui:define>
Que faire pour que la navigation s'effectue bien dans la portlet ?