You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Korben Zhang <ko...@gmail.com> on 2007/09/03 02:13:02 UTC

Re: Unit Test Cannot run correctly!

How did you inject DAO service?
if you use Spring to manage DAOs, usage like other service.
Spring will help you get right object instance.


On 8/31/07, 小司 <mo...@gmail.com> wrote:
>
> My Application use spring2+tapestry5+hibernate3 ,it can work well in me
> IE or  FF
>
> so,I want to use Unit Test with testNG .I followed
>
> http://tapestry.apache.org/tapestry5/tapestry-core/guide/unit-testing-pages.html
>
> configrate spring with
> http://wiki.apache.org/tapestry/Tapestry5SpringIntegration
>
> I want to test a tapestry page, but I got Exception .IPublicDAO is my
> spring
> class
>
> I didnot know wrong where I make. can anybody help me  thanks a lot.
>
> Caused by: java.lang.RuntimeException: Error obtaining injected value for
> field cn.crc.pjblog.pages.BlogPostOne.pdao: No service implements the
> interface cn.crc.model.impl.IPublicDAO.
> at org.apache.tapestry.internal.services.InjectWorker.inject(
> InjectWorker.java:84)
> at org.apache.tapestry.internal.services.InjectWorker.transform(
> InjectWorker.java:53)
> at
>
> $ComponentClassTransformWorker_114ba61b606.transform($ComponentClassTransformWorker_114ba61b606.java)
> at
>
> $ComponentClassTransformWorker_114ba61b603.transform($ComponentClassTransformWorker_114ba61b603.java)
> at
>
> org.apache.tapestry.internal.services.ComponentClassTransformerImpl.transformComponentClass
> (ComponentClassTransformerImpl.java:131)
> ... 48 more
> Caused by: java.lang.RuntimeException: No service implements the interface
> cn.crc.model.impl.IPublicDAO.
> at org.apache.tapestry.ioc.internal.RegistryImpl.getService(
> RegistryImpl.java:447)
> at org.apache.tapestry.ioc.internal.ObjectLocatorImpl.getService(
> ObjectLocatorImpl.java:45)
> at org.apache.tapestry.ioc.services.TapestryIOCModule$2.provide(
> TapestryIOCModule.java:132)
> at $ObjectProvider_114ba61b5d4.provide($ObjectProvider_114ba61b5d4.java)
> at $ObjectProvider_114ba61b5ce.provide($ObjectProvider_114ba61b5ce.java)
> at org.apache.tapestry.internal.services.InjectWorker.inject(
> InjectWorker.java:80)
> ... 52 more
> ... Removed 22 stack frames
>
>
>
>
> --
> 得与失都是生活
>



-- 
Korben Zhang http://korben-zhang.blogspot.com
Backup Blog: http://korbenzh.spaces.live.com

Re: Unit Test Cannot run correctly!

Posted by Doublel <mo...@gmail.com>.
Thanks Korben Zhang

I didn't write DAO Service,I directly inject DAO into t5 page like this:

@Inject
@SpringBean("IPublicDAO")
private IPublicDAO  pdao;

it can work well in tomcat.but when I want to user Unit Test,I got the
exception。
I must write DAO service ?? my code is learned from your tfan-dphrm project.


2007/9/3, Korben Zhang <ko...@gmail.com>:
>
> How did you inject DAO service?
> if you use Spring to manage DAOs, usage like other service.
> Spring will help you get right object instance.
>
>
> On 8/31/07, 小司 <mo...@gmail.com> wrote:
> >
> > My Application use spring2+tapestry5+hibernate3 ,it can work well in me
> > IE or  FF
> >
> > so,I want to use Unit Test with testNG .I followed
> >
> >
> http://tapestry.apache.org/tapestry5/tapestry-core/guide/unit-testing-pages.html
> >
> > configrate spring with
> > http://wiki.apache.org/tapestry/Tapestry5SpringIntegration
> >
> > I want to test a tapestry page, but I got Exception .IPublicDAO is my
> > spring
> > class
> >
> > I didnot know wrong where I make. can anybody help me  thanks a lot.
> >
> > Caused by: java.lang.RuntimeException: Error obtaining injected value
> for
> > field cn.crc.pjblog.pages.BlogPostOne.pdao: No service implements the
> > interface cn.crc.model.impl.IPublicDAO.
> > at org.apache.tapestry.internal.services.InjectWorker.inject(
> > InjectWorker.java:84)
> > at org.apache.tapestry.internal.services.InjectWorker.transform(
> > InjectWorker.java:53)
> > at
> >
> >
> $ComponentClassTransformWorker_114ba61b606.transform($ComponentClassTransformWorker_114ba61b606.java)
> > at
> >
> >
> $ComponentClassTransformWorker_114ba61b603.transform($ComponentClassTransformWorker_114ba61b603.java)
> > at
> >
> >
> org.apache.tapestry.internal.services.ComponentClassTransformerImpl.transformComponentClass
> > (ComponentClassTransformerImpl.java:131)
> > ... 48 more
> > Caused by: java.lang.RuntimeException: No service implements the
> interface
> > cn.crc.model.impl.IPublicDAO.
> > at org.apache.tapestry.ioc.internal.RegistryImpl.getService(
> > RegistryImpl.java:447)
> > at org.apache.tapestry.ioc.internal.ObjectLocatorImpl.getService(
> > ObjectLocatorImpl.java:45)
> > at org.apache.tapestry.ioc.services.TapestryIOCModule$2.provide(
> > TapestryIOCModule.java:132)
> > at $ObjectProvider_114ba61b5d4.provide($ObjectProvider_114ba61b5d4.java)
> > at $ObjectProvider_114ba61b5ce.provide($ObjectProvider_114ba61b5ce.java)
> > at org.apache.tapestry.internal.services.InjectWorker.inject(
> > InjectWorker.java:80)
> > ... 52 more
> > ... Removed 22 stack frames
> >
> >
> >
> >
> > --
> > 得与失都是生活
> >
>
>
>
> --
> Korben Zhang http://korben-zhang.blogspot.com
> Backup Blog: http://korbenzh.spaces.live.com
>



-- 
得与失都是生活