Bonjour

j'ai créé un projet JSF 2.x et je voudrais créer un écran maitre/esclave (utilisation de facelets), dans la partie gauche j’insère une arborescence (composant tree de Tomahawk) et quand je cliquerais sur un nœud les donnés s'afficheront dans la partie droite
j'utilise Myeclipse et Tomcat 7 comme serveur d'application
Mais lors de l’exécution rien ne va et je crois que le problème vient des fichiers de configuration ou/et de la classe Corbeilles.java

Merci,

les Libs du projet:
Tomahawk 1.1.10
JSF mojarra-2.1.2-FCS
Classe Corbeille
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package fr.projet.jsf;
 
import org.apache.myfaces.custom.tree.DefaultMutableTreeNode;  
import org.apache.myfaces.custom.tree.model.DefaultTreeModel;
 
public class Corbeilles {
 
	private DefaultTreeModel tree;  
 
	public Corbeilles()  
	{  
 
	DefaultMutableTreeNode root = new DefaultMutableTreeNode("XY");  
	DefaultMutableTreeNode a = new DefaultMutableTreeNode("A");  
	root.insert(a);  
	DefaultMutableTreeNode b = new DefaultMutableTreeNode("B");  
	root.insert(b);  
	DefaultMutableTreeNode c = new DefaultMutableTreeNode("C");  
	root.insert(c);  
 
	DefaultMutableTreeNode node = new DefaultMutableTreeNode("a1");  
	a.insert(node);  
	node = new DefaultMutableTreeNode("a2 ");  
	a.insert(node);  
	node = new DefaultMutableTreeNode("b ");  
	b.insert(node);  
 
	a = node;  
	node = new DefaultMutableTreeNode("x1");  
	a.insert(node);  
	node = new DefaultMutableTreeNode("x2");  
	a.insert(node);  
	tree = new DefaultTreeModel(root);   
	}  
 
	public DefaultTreeModel getTree() {  
		return tree;  
		}  
	public void setTree(DefaultTreeModel tree) {  
		this.tree = tree;  
		}  
}
Fichier home.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
      <title>fichier de paramétrage</title>
      <ui:define name="content">traitements</ui:define>
</html>
Fichier template.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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:t="http://myfaces.apache.org/tomahawk">
	<f:view>
		<head>
		<title>Facelets example</title>
		</head>
		<body>
			<h:form>
				<table width="100%">
				<tr>
					<td width="20%">
						<div style="height: 250px; width: 100%; background-color: #e0e0e0; text-align: center;">
							<br />
							<ui:insert name="sidemenu"></ui:insert>
							<t:tree id="tree"   value="#{treeBean.tree}"
									styleClass="tree"  
									nodeClass="treenode"  
									selectedNodeClass="treenodeSelected"  
									expandRoot="true">  
							</t:tree>  
						</div>
					</td>
					<td width="85%">
						<ui:insert name="content">Content displayed from Template </ui:insert>
					</td>
				</tr>
				</table>
			</h:form>
		</body>
	</f:view>
</html>
Fichier web.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
17
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name></display-name>
  <welcome-file-list>
    <welcome-file>home.faces</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
</web-app>
Fichier faces-config.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?xml version="1.0" encoding="UTF-8"?>
 
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0"> 
	<managed-bean>  
<managed-bean-name>treeBean</managed-bean-name>  
<managed-bean-class>fr.projet.jsf.Corbeilles</managed-bean-class>  
<managed-bean-scope>application</managed-bean-scope>  
</managed-bean> 
</faces-config>
Erreurs lors de l’exécution
type Rapport d''exception

message

description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

exception

javax.servlet.ServletException: org/apache/myfaces/custom/tree/MutableTreeNode
javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)

cause mère

java.lang.NoClassDefFoundError: org/apache/myfaces/custom/tree/MutableTreeNode
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
java.lang.Class.getConstructor0(Class.java:2699)
java.lang.Class.getConstructor(Class.java:1657)
com.sun.faces.mgbean.BeanBuilder.loadBeanClass(BeanBuilder.java:428)
com.sun.faces.mgbean.BeanBuilder.bake(BeanBuilder.java:379)
com.sun.faces.mgbean.ManagedBeanBuilder.bake(ManagedBeanBuilder.java:86)
com.sun.faces.mgbean.BeanManager.preProcessBean(BeanManager.java:349)
com.sun.faces.mgbean.BeanManager.create(BeanManager.java:258)
com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:191)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:73)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:71)
org.apache.el.parser.AstValue.getValue(AstValue.java:147)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
com.sun.faces.facelets.el.ELText$ELTextVariable.toString(ELText.java:210)
com.sun.faces.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:86)
com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:78)
com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:179)
javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)

cause mère

java.lang.ClassNotFoundException: org.apache.myfaces.custom.tree.MutableTreeNode
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
java.lang.Class.getConstructor0(Class.java:2699)
java.lang.Class.getConstructor(Class.java:1657)
com.sun.faces.mgbean.BeanBuilder.loadBeanClass(BeanBuilder.java:428)
com.sun.faces.mgbean.BeanBuilder.bake(BeanBuilder.java:379)
com.sun.faces.mgbean.ManagedBeanBuilder.bake(ManagedBeanBuilder.java:86)
com.sun.faces.mgbean.BeanManager.preProcessBean(BeanManager.java:349)
com.sun.faces.mgbean.BeanManager.create(BeanManager.java:258)
com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:191)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:73)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:71)
org.apache.el.parser.AstValue.getValue(AstValue.java:147)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
com.sun.faces.facelets.el.ELText$ELTextVariable.toString(ELText.java:210)
com.sun.faces.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:86)
com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:78)
com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:179)
javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)

note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.16.