I initially had a constructor that accepted a session. That worked fine.

Then, I took out the constructor and simply injected the session. That is 
working fine as well.

Now, I am injecting my delegate as service into my page. The DAO is injected to 
my delegate. Then, the session is injected into my DAO. That is working well 
for me. (No constructors.)

Best Regards. 
--Anas Mughal
http://anas-mughal.com 
     

--- On Thu, 11/11/10, Everton Agner <ton.ag...@gmail.com> wrote:

From: Everton Agner <ton.ag...@gmail.com>
Subject: Re: session is NULL
To: "Tapestry users" <users@tapestry.apache.org>
Date: Thursday, November 11, 2010, 8:23 AM

> @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