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