LoginLayout : @Import(stylesheet = "asset:layout/layout.css") public class LoginLayout { // Title of the page // @SuppressWarnings("unused") @Property @Parameter(required = true, defaultPrefix = BindingConstants.LITERAL) private String title;
@InjectPage private Index indexPage; Object onActionFromMain() { return indexPage; } } MainLayout : public class MainLayout { // Title of the page @Property @Parameter(required = true, defaultPrefix = BindingConstants.LITERAL) private String title; // Current page, used for the coloration of the menu @Property @Parameter(required = true, defaultPrefix = BindingConstants.LITERAL) private String currentPage; // Locale language @Inject private PersistentLocale persistentLocale; // Pages of the application @InjectPage private CreerClient creerClientPage; @InjectPage private DetailsApplicatif detailsApplicatifPage; @InjectPage private DetailsClient detailsClientPage; @InjectPage private DetailsCollaborateur detailsCollaborateurPage; @InjectPage private DetailsTerminal detailsTerminalPage; @InjectPage private EnvoiFichiers envoiFichiersPage; @InjectPage private GestionListes gestionListesPage; @InjectPage private GestionTypesClient gestionTypesClientPage; @InjectPage private HistoriqueLivraisons historiqueLivraisonsPage; @InjectPage private ListeApplicatifs listeApplicatifsPage; @InjectPage private ListeClients listeClientsPage; @InjectPage private ListeTerminaux listeTerminauxPage; @InjectPage private LivraisonsEnCours livraisonsEnCoursPage; @InjectPage private Login loginPage; @InjectPage private NouveauCollaborateur nouveauCollaborateurPage; @InjectPage private NouveauTerminal nouveauTerminalPage; @InjectPage private NouvelApplicatif nouvelApplicatifPage; @InjectPage private NouvelleLivraison nouvelleLivraisonPage; @InjectPage private ReceptionFichiers receptionFichiersPage; // The connected user @Property @SessionState(create = false) private User userConnected; // Action from actionlink to redirect to a page Object onActionFromLogout() { if (userConnected != null) { Logger.logEvent(userConnected, "Disconnected", Logger.LOG_LEVEL_INFO); userConnected = null; } return loginPage; } Object onActionFromCreerClient() { return creerClientPage; } Object onActionFromDetailsApplicatif() { return detailsApplicatifPage; } Object onActionFromDetailsClient() { return detailsClientPage; } Object onActionFromDetailsCollaborateur() { return detailsCollaborateurPage; } Object onActionFromDetailsTerminal() { return detailsTerminalPage; } Object onActionEnvoiFichiers() { return envoiFichiersPage; } Object onActionFromGestionListes() { return gestionListesPage; } Object onActionFromGestionTypesClient() { return gestionTypesClientPage; } Object onActionFromHistoriqueLivraisons() { return historiqueLivraisonsPage; } Object onActionFromListeApplicatifs() { return listeApplicatifsPage; } Object onActionFromListeClients() { return listeClientsPage; } Object onActionFromListeTerminaux() { return listeTerminauxPage; } Object onActionFromLivraisonsEnCours() { return livraisonsEnCoursPage; } Object onActionFromLogin() { return loginPage; } Object onActionFromNouveauCollaborateur() { return nouveauCollaborateurPage; } Object onActionFromNouveauTerminal() { return nouveauTerminalPage; } Object onActionFromNouvelApplicatif() { return nouvelApplicatifPage; } Object onActionFromNouvelleLivraison() { return nouvelleLivraisonPage; } Object onActionFromReceptionFichiers() { return receptionFichiersPage; } Object onActionFromEnglish() { persistentLocale.set(new Locale("en_GB")); return null; } Object onActionFromFrench() { persistentLocale.set(new Locale("fr_FR")); return null; } // Set li class for menu coloration public String getClass(String page) { if (currentPage.matches("^" + page + ".*") || page.equals(currentPage)) { return "active"; } return ""; } } 2014-07-03 13:35 GMT+02:00 Thilo Tanner <thilo.tan...@reprisk.com>: > Hi! > > Is the layout class itself maybe private or protected? > > Otherwise, could you provide us a (anonymous version) of your code? > > Thanks and best, > Thilo > > ________________________________________ > From: squallmat . <squall...@gmail.com> > Sent: Thursday, July 03, 2014 13:29 > To: Tapestry users > Subject: Re: java.lang.reflect.InvocationTargetException > > I don't have created any constructor in my layouts, so it can't be that. > > > 2014-07-03 12:16 GMT+02:00 Thilo Tanner <thilo.tan...@reprisk.com>: > > > Hi! > > > > The problem is, that Tapestry cannot create an instance of your component > > LoginLayout. > > > > You probably created a non-default constructor or the constructor is > > private or protected. Check the Tapestry component lifecycle in case you > > want to setup your component (for example by using @SetupRender) > > > > Best, > > Thilo > > > > > > > > ________________________________________ > > From: squallmat . <squall...@gmail.com> > > Sent: Thursday, July 03, 2014 11:44 > > To: users@tapestry.apache.org > > Subject: java.lang.reflect.InvocationTargetException > > > > Hello I have an embedded component into another component but when I try > to > > launch i got this : > > > > "Exception assembling root component of page Index: Exception assembling > > embedded component 'mainlayout' (of type > > atos.smt.livraison.components.MainLayout, within Index): Exception > > assembling embedded component 'loginlayout' (of type > > atos.smt.livraison.components.LoginLayout, within Index:mainlayout): > Unable > > to instantiate instance of transformed class > > atos.smt.livraison.components.LoginLayout: > > java.lang.reflect.InvocationTargetException" > > > > What the problem could be ? > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >