salut,
je travaille sur un projet web qui utilise jsf 1.2, richfaces 3.3 et tomcat 6..

j'ai une classe qui remplit un tree, que j'utilise pour un contrôle rich:tree dans ma page jsf.

le problème c'est que je comprends pas encore comment ça marche avec jsf puisque c'est mon premier projet..
et donc par exemple quand j'utilise une classe bean est ce que cette classe ne doit pas contenir des fonctions (comme celle qui remplit mon tree par ex) et si non est ce que je doit faire tout le traitement dans mon constructeur ??

voila ma classe bean Serveur :

public class Serveur {

private String host, username, password;
private int port;
private FileTransferClient ftp;

private TreeNode racine;

public Serveur() {
host = "localhost";
username = "***";
password = "***";
port = 21;
racine = new TreeNodeImpl();

Connexion();
ConstruireArbre();
Arbre();
}

public TreeNode getRacine() {
return racine;
}


public void setRacine(TreeNode racine) {
this.racine = racine;
}
et ma page jsf :

<f:view>
<rich:tree value="#{serveur.racine}" var="item" id="arbre" switchType="client">
<rich:treeNode>
<h:outputText value="#{item}" />
</rich:treeNode>
</rich:tree>
</f:view>
et voila l'erreur que j'obtient :
exception

javax.servlet.ServletException: Possible cyclic reference to managed bean "serveur"
javax.faces.webapp.FacesServlet.service(FacesServlet.java:249)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)


cause mère

javax.faces.FacesException: Possible cyclic reference to managed bean "serveur"
com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:296)
com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:542)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:83)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:58)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61)
org.apache.el.parser.AstValue.getValue(AstValue.java:107)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
javax.faces.component.UIData.getValue(UIData.java:577)
org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1624)
org.richfaces.component.UITree.createDataModel(UITree.java:679)
org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:339)
org.richfaces.renderkit.TreeRendererBase.writeContent(TreeRendererBase.java:677)
org.richfaces.renderkit.TreeRendererBase.encodeChildren(TreeRendererBase.java:618)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:827)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:258)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:159)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)


j'espère que vous pourriez m'aider