Bonjour,

Je suis en train de suivre en partie le tuto Wicket de Philippe Sénéchal : http://psenechal.developpez.com/tuto...et-et-eclipse/

Cependant la partie V.I sur les sessions me pose un problème.
J'ai une erreur de cast lors de l'exécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Last cause: org.apache.wicket.protocol.http.WebSession cannot be cast to com.base.Dossier
Le problème se situe au niveau du cast de la classe BasePage lors de la récupération de la session :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public Dossier getDossier() {
	    return (Dossier) getSession();
	}
Il me semble pourtant avoir déclarer les bonnes méthodes aux bons endroits selon le tuto.

Classe d'initialisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Application extends WebApplication {
	public Application() {
	}
 
	@Override
	public Session newSession(Request request, Response response) {
	    return new Dossier(request);
	}
 
	@Override
	public Class getHomePage() {
	    return LoginPage.class;
	}
}
La classe correspondant à mon gabarit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public abstract class BasePage extends WebPage {
	public BasePage() {
	    super();
	}
 
        // Récupération de la session 
	public Dossier getDossier() {
	    return (Dossier) getSession();
	}
La classe de Dossier spécialisation de WebSession :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public class Dossier extends WebSession {
	// Constructeur
	public Dossier(Request request) {
	    super(request);
	}
}
La page de login qui tente d'appeler la méthode getDossier :
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
public class LoginPage extends BasePage {
	private static final String idFormulaire = "form";
	// Contructeur
	public LoginPage() {
	    super();
	    LoginPageForm form = new LoginPageForm(idFormulaire);
	    add(form);
	}
 
	// Classe du formulaire html LoginPage
	private class LoginPageForm extends Form<Object> {
	    // Récupère la session 
            Dossier dossier = getDossier();
 
            public LoginPageForm(String id) {
	        super(id);
	    }
        }
}
J'avoue rester un peu perplexe et n'arrive pas à voir où est le problème.
Merci pour votre aide.