On Mon, Aug 11, 2008 at 11:02 AM, Jonathan Dray <[EMAIL PROTECTED]>wrote:

> Matt,
>
> I have successfully tested my actionDao with an appfuse test case :
> BaseDaoTestCase.
> The problem is that now I want to test my manager which doesn't inherit an
> Appfuse class.
> I tried to test it in an AbstractTransactionalSpringContextTest class.
>
> My manager is no definded as a Spring Bean, thus I need to provide to my
> manager 2 dao instances manually :
>   - an actionDao
>   - a processDao
>
> These two Daos are defined as beans in my applicationContext and both
> inherit a GenericDao appfuse dao class .
>
> To get these two beans in my manager's test I tried 2 different ways :
>   - use 2 private variables actionDao and processDao and use an @Autowired
> annotation and added the necessary configuration to spring to use
> annotations.
>   - use 2 private variables actionDao and processDao and implement setters
> these variables.
>
> Both failed with sessionFactory related problem.
> I'm quite new to Hibernate, Spring and Appfuse and may have missed
> something important.
>
> Thanks for your patience.
> Jonathan
>

Can you post your test class? It's likely you're not loading the Spring
context files needed to initialize Hibernate.

Matt


>
>
>
> 2008/8/11 Matt Raible <[EMAIL PROTECTED]>
>
> It looks like your DAO may be the problem. Have you successfully written a
>> test for it? You should make sure your ActionDaoHibernate extends
>> HibernateTemplate or one of the AppFuse base classes.
>>
>> Matt
>>
>>
>> On Mon, Aug 11, 2008 at 9:14 AM, Jonathan Dray <[EMAIL PROTECTED]>wrote:
>>
>>> Hi Matt,
>>>
>>> I've tested AbstractTransactionalSpringContextTests and got some errors
>>> while Spring tries to load my daos :
>>>
>>> Error creating bean with name 'actionDao' defined in class path resource
>>> [ApplicationContext-resources.xml]: Cannot resolve reference to bean
>>> 'sessionFactory' while setting bean property 'sessionFactory'; nested
>>> exception is
>>> org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
>>> named 'sessionFactory' is defined
>>>
>>>
>>> Do I have to provide all the informations as if I was configuring
>>> hibernate with Spring (without appfuse) ?
>>>  - Defining a session factory that uses my datasource?
>>>  - Handling transactions with AOP ?
>>>
>>> If it is the case :
>>> Is there an appfuse base manager class that my manager should inherit and
>>> that will handle all this ?
>>>
>>> Did I miss something ?
>>>
>>> Thanks for your help.
>>>
>>> Regards,
>>> Jonathan Dray
>>>
>>>
>>>
>>> 2008/8/8 Matt Raible <[EMAIL PROTECTED]>
>>>
>>>> Running your DAOs outside of a transaction is what's causing your lazy
>>>> exceptions. By extending the Spring classes, your test methods will be
>>>> wrapped in transactions. As for your Managers when running in Tomcat,
>>>> if they exist under the "service" package (at any level) and they end
>>>> in "Manager", their methods should be wrapped in transactions too.
>>>>
>>>> Matt
>>>>
>>>> On Fri, Aug 8, 2008 at 1:20 AM, Jonathan Dray <[EMAIL PROTECTED]>
>>>> wrote:
>>>> > Hi Matt,
>>>> >
>>>> > Ok, I will try to extend the spring test class you suggested.
>>>> > But what about in my application ?
>>>> >
>>>> > As my manager doesn't extend an Appfuse manager class I'll probably
>>>> have
>>>> > some errors .
>>>> > Do I have to define additional configuration options (transactions,
>>>> lazy
>>>> > loading) in spring or hibernate configuration files ?
>>>> > If it is the case do you some examples on how to do this please ?
>>>> >
>>>> > Thank you.
>>>> > Best Regards,
>>>> >
>>>> > Jonathan Dray
>>>> >
>>>> >
>>>> > 2008/8/8 Matt Raible <[EMAIL PROTECTED]>
>>>> >>
>>>> >> You should change your test class to extend Spring's
>>>> >> AbstractTransactionalDataSourceSpringContextTests (or something like
>>>> >> that).
>>>> >>
>>>> >> Matt
>>>> >>
>>>> >> On Thu, Aug 7, 2008 at 5:34 PM, Jonathan Dray <
>>>> [EMAIL PROTECTED]>
>>>> >> wrote:
>>>> >> > Hi,
>>>> >> >
>>>> >> > We are working with Appfuse and we really appreciate it.
>>>> >> > We have defined a custom manager that uses several daos.
>>>> >> > It does not extends any of appfuse manager classes.
>>>> >> >
>>>> >> > It perfectly works in a test case when the test class used extends
>>>> one
>>>> >> > of
>>>> >> > Appfuse test classes available.
>>>> >> > We followed indications found in this thread :
>>>> >> >
>>>> >> >
>>>> http://www.nabble.com/-Appfuse2.0--Best-Practise-Design-Pattern-for-Multiple-Dao-Access-from-managers-td14116309s2369.html#a14370264
>>>> >> >
>>>> >> > But, we get some errors when we try to test the same manager with a
>>>> >> > Junit or
>>>> >> > a Spring Test Case.
>>>> >> > The errors are about lazy loading.
>>>> >> >
>>>> >> > How should we define our custom manager so that it works without a
>>>> >> > specific
>>>> >> > appfuse context ?
>>>> >> > There must be some best practices to do this with appfuse. Could
>>>> you
>>>> >> > please
>>>> >> > give us more information on how to handle this ?
>>>> >> >
>>>> >> > Thank you.
>>>> >> >
>>>> >> > Regards,
>>>> >> > Jonathan Dray
>>>> >> >
>>>> >>
>>>> >> ---------------------------------------------------------------------
>>>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>>>> >>
>>>> >
>>>> >
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>
>>
>

Reply via email to