are u binding RdbmsLogin.java too? On Mon, Aug 3, 2009 at 11:20 PM, Neo Anderson<javadeveloper...@yahoo.co.uk> wrote: > > Yes I do see the log (catalina.out) shows > > IAccount: DEFINED > IAuthService: DEFINED > > And what makes me confused is that the log also shows that the IAccount is > created when invoking AuthService.java > > [DEBUG] AppModule.IAccount Creating service 'IAccount'. > [AuthService.java] accountDAO is null?<Proxy for > Account(org.example.domain.IAccount)> //printed by System.out.println > > But when it comes to execute RdbmsLogin.java, the '@private IAccount > accountDAO' in RdbmsLogin becomes null because I use System.out.println() to > print the object accountDAO (accountDAO.findUserByAccount(new User("-1", > account, "", password));) and the result is as follow: > > [RdbmsLogin.java] accountDAO is null? null > > The flow of execution is > > Login.java -> IAuthService.java/ AuthService.java -> RdbmsLogin.java > > in AuthService and Rdbmslogin both contain '@Inject private IAccount > accountDAO' annotation; but the accountDAO in AuthService is not null and I > can execute the function e.g. findUserByAccount without a problem. > Unfortunately, when it execute accountDAO in RdbmsLogin, then the accountDAO > is null. (This is just for comparison so I put two Inject annotation in > AuthService and RdbmsLogin classes) > > Also, if I remove IAuthService/ AuthService, directly calling RdbmsLogin.java > from Login.java shows the accountDAO ('@Inject private IAccount accountDAO') > in RdbmsLogin.java is still null. (This execution flow should be Login.java > -> RdbmsLogin.java ) > > The AppModule.java contains the binding clauses > > public class AppModule { > public static void bind(ServiceBinder binder) { > binder.bind(IAuthService.class, AuthService.class); > binder.bind(IAccount.class, Account.class); > } > ... > } > > I think I may do something wrong, but I completely am not aware of it. Is > there anything I miss or misconfigure? > > Thanks in advice. > > --- On Mon, 3/8/09, Juan E. Maya <maya.j...@gmail.com> wrote: > >> From: Juan E. Maya <maya.j...@gmail.com> >> Subject: Re: Tapestry 5 IoC binding interface with impl problem >> To: "Tapestry users" <users@tapestry.apache.org> >> Date: Monday, 3 August, 2009, 7:44 PM >> Do u see the DAO being created when >> the application goes up? Tapestry >> does a very good job informing all the services that are >> configured. >> If it's not in the log then u r not binding the service. >> >> There r 2 ways to bind services in a module: >> public static void bind(ServiceBinder binder) { >> binder.bind(Interface.class, >> Impl.class); >> } >> >> or >> public static Interface buildServiceName() >> { >> return new InteraceImpl(); >> } >> >> >> I really didn't get what u were trying to do in the first >> email. >> ApplicationStateCreator<IAccount> account = >> >> new >> ApplicationStateCreator<IAccount>(){ >> >> >> public IAccount create() { >> >> >> return new AccountDAO(); >> >> >> } >> >> }; >> >> >> configuration.add(IAccount.class, new >> ApplicationStateContribution("session", account)); >> >> >> in what method of ur App module is that code? >> > > > > > > --------------------------------------------------------------------- > 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