> @Inject is for pages. Make your DAO a Tapestry service and inject the
> session to it via its constructor.
>
> Kalle

I guess not... Since the DAO is a service, you can either @Inject fields,
pass thru construtuctor call or build them.

_______________________
Everton Agner Ramos


2010/11/10 Anas Mughal <anasmug...@yahoo.com>

> Yes, that worked. I wish to thank everyone for their help!
>
> Tapestry is great!
> Coming from the Spring world, I do not miss those verbose Spring
> configuration files!
>
> --Anas Mughal
> http://anas-mughal.com
>
>
> --- On Wed, 11/10/10, Rich M <rich...@moremagic.com> wrote:
>
> From: Rich M <rich...@moremagic.com>
> Subject: Re: session is NULL
> To: "Tapestry users" <users@tapestry.apache.org>
> Date: Wednesday, November 10, 2010, 10:34 AM
>
> On 11/10/2010 03:42 AM, Anas Mughal wrote:
> > I have setup my DAO as a Tapestry service in the AppModule as:
> >      public class AppModule
> >    {
> >       public static void bind(ServiceBinder binder)
> >       {
> >         binder.bind(BranchDAO.class, BranchHibernateDAO.class);
> >
> >       }
> >    }
> >     Then, I try to inject the session as follows:
> >        public class BranchHibernateDAO implements BranchDAO {
> >
> >       @Inject
> >       private Session session;
> >
> >
> >            @SuppressWarnings("unchecked")
> >       public Object find( Class c , BigDecimal id)
> >       {
> >         return session.get(c, id);
> >       }
> >
> >    }
> >
> > I still get a NULL session.
> >
> >
> >
> >
> >
> >
> >
> > Following the suggestion by Kalle, I injected the session to a page.
> Then, passed the session to my DAO in the contructor. That worked! However,
> I would rather keep the code cleaner by injecting the session directly into
> the DAO.
> >
> To use the DAO, you will want the following setup.
>
> public class BranchHibernateDAO implements BranchDAO {
>
>     private Session session;
>
>     public BranchHibernateDAO(Session session){
>
>         this.session = session;
>
>     }
>
>     ...
>
> }
>
>
> then in your page class:
>
> @Inject
>
> private BranchHibernateDAO bhdao;
>
>
> You do not need to initialize the BranchHibernateDAO yourself. Tapestry-IoC
> will initialize the BranchHibernateDAO lazily behind the scenes the first
> time you access it in the web application. In this case, that would be when
> you navigate to the page relating to your page class, where the DAO is
> injected.
>
> The convention for services, is that when they are setup in the bind method
> of the AppModule (or whatever your module is called), Tapestry will "inject"
> the appropriate objects to its constructor when it initializes the service.
>
> This convention will keep your page classes cleaner.
> >   Any suggestion would be greatly appreciated.
> > --- On Wed, 11/10/10, Kalle Korhonen<kalle.o.korho...@gmail.com>  wrote:
> >
> >
> > From: Kalle Korhonen<kalle.o.korho...@gmail.com>
> > Subject: Re: session is NULL
> > To: "Tapestry users"<users@tapestry.apache.org>
> > Date: Wednesday, November 10, 2010, 1:48 AM
> >
> >
> > @Inject is for pages. Make your DAO a Tapestry service and inject the
> > session to it via its constructor.
> >
> > Kalle
> >
> >
> > On Tue, Nov 9, 2010 at 9:52 PM, Anas Mughal<anasmug...@yahoo.com>
> wrote:
> >
> >> I have setup my Tapestry project using the Maven archetype. Then, I
> setup my hibernate.cfg.xml file with references to my hibernate mapping
> files. (I am not using annotations for hibernate.)
> >>
> >> Now, I have setup a simple DAO object to try to retrieve an object from
> the database:
> >>
> >> public class BranchDAO {
> >>
> >>      @Inject
> >>      private Session session;
> >>
> >>      @SuppressWarnings("unchecked")
> >>      public Object find( Class c , BigDecimal id)
> >>      {
> >>          return  session.get(c, id);  // session is NULL here
> >>      }
> >> }
> >>
> >>
> >> I get a NULL pointer exception because my session does not seem to be
> >>   initialized.
> >>
> >> Searching online, I came accross:
> >> http://wiki.apache.org/tapestry/SessionPagePersistence
> >>
> >> I have not setup any hivemind configuration or any of the suggested
> classes on that wiki page. Please advise me what do I need to be able to
> fetch objects using Tapestry-Hibernate. I don't know where to place the
> hivemind configuration file -- if I need it.
> >>
> >> I am new to Tapestry. Please bear with me.
> >>
> >> Thank you for your kind assistance.
> >> --Anas Mughal
> >> http://anas-mughal.com
> >>
> >>
> >>
> >>
> >>
> >>
> > ---------------------------------------------------------------------
> > 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
>
>
>
>
>
>

Reply via email to