Thanks ! the problem is resolved. But I ran  into this :

[ERROR] WebApplicationContext Construction of service WebApplicationContext
failed: Error invoking service builder method
cn.crc.spring.SpringModule.build(Context) (at SpringModule.java:34) (for
service 'WebApplicationContext'): An exception occurred obtaining the Spring
WebApplicationContext: getAttribute() is not supported for
ContextForPageTester.
java.lang.RuntimeException: Error invoking service builder method
cn.crc.spring.SpringModule.build(Context) (at SpringModule.java:34) (for
service 'WebApplicationContext'): An exception occurred obtaining the Spring
WebApplicationContext: getAttribute() is not supported for
ContextForPageTester.
    at
org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(
ServiceBuilderMethodInvoker.java:87)
    at
org.apache.tapestry.ioc.internal.SingletonServiceLifecycle.createService(
SingletonServiceLifecycle.java:31)
    at
org.apache.tapestry.ioc.internal.LifecycleWrappedServiceCreator.createObject
(LifecycleWrappedServiceCreator.java:54)
    at org.apache.tapestry.ioc.internal.InterceptorStackBuilder.createObject
(InterceptorStackBuilder.java:54)
    at
org.apache.tapestry.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject
(RecursiveServiceCreationCheckWrapper.java:60)
    at
org.apache.tapestry.ioc.internal.services.JustInTimeObjectCreator.createObject
(JustInTimeObjectCreator.java:61)
    at
$WebApplicationContext_1154558bc95._delegate($WebApplicationContext_1154558bc95.java)
    at
$WebApplicationContext_1154558bc95.getBeanDefinitionNames($WebApplicationContext_1154558bc95.java)
    at cn.crc.spring.SpringObjectProvider.loadBeanNames(
SpringObjectProvider.java:49)
    at cn.crc.spring.SpringObjectProvider.provide(SpringObjectProvider.java
:73)
    at $ObjectProvider_1154558bc97.provide($ObjectProvider_1154558bc97.java)
    at $ObjectProvider_1154558bc90.provide($ObjectProvider_1154558bc90.java)
    at org.apache.tapestry.internal.services.InjectWorker.inject(
InjectWorker.java:80)
    at org.apache.tapestry.internal.services.InjectWorker.transform(
InjectWorker.java:53)
    at
$ComponentClassTransformWorker_1154558bcc9.transform($ComponentClassTransformWorker_1154558bcc9.java)
    at
$ComponentClassTransformWorker_1154558bcc6.transform($ComponentClassTransformWorker_1154558bcc6.java)
    at
org.apache.tapestry.internal.services.ComponentClassTransformerImpl.transformComponentClass
(ComponentClassTransformerImpl.java:131)
    at
$ComponentClassTransformer_1154558bcc0.transformComponentClass($ComponentClassTransformer_1154558bcc0.java)
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.onLoad
(ComponentInstantiatorSourceImpl.java:177)
    at javassist.Loader.findClass(Loader.java:340)
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass
(ComponentInstantiatorSourceImpl.java:85)
    at javassist.Loader.loadClass(Loader.java:311)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findClass
(ComponentInstantiatorSourceImpl.java:254)
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findInstantiator
(ComponentInstantiatorSourceImpl.java:240)
    at
$ComponentInstantiatorSource_1154558bcb3.findInstantiator($ComponentInstantiatorSource_1154558bcb3.java)
    at
org.apache.tapestry.internal.services.PageElementFactoryImpl.newRootComponentElement
(PageElementFactoryImpl.java:319)
    at
$PageElementFactory_1154558bcbe.newRootComponentElement($PageElementFactory_1154558bcbe.java)
    at
org.apache.tapestry.internal.services.PageLoaderProcessor.loadRootComponent(
PageLoaderProcessor.java:405)
    at org.apache.tapestry.internal.services.PageLoaderProcessor.loadPage(
PageLoaderProcessor.java:390)
    at org.apache.tapestry.internal.services.PageLoaderImpl.loadPage(
PageLoaderImpl.java:59)
    at $PageLoader_1154558bcbb.loadPage($PageLoader_1154558bcbb.java)
    at org.apache.tapestry.internal.services.PagePoolImpl.checkout(
PagePoolImpl.java:70)
    at $PagePool_1154558bcba.checkout($PagePool_1154558bcba.java)
    at org.apache.tapestry.internal.services.RequestPageCacheImpl.get(
RequestPageCacheImpl.java:44)
    at $RequestPageCache_1154558bcb7.get($RequestPageCache_1154558bcb7.java)
    at $RequestPageCache_1154558bcaf.get($RequestPageCache_1154558bcaf.java)
    at
org.apache.tapestry.internal.services.PageRenderRequestHandlerImpl.handle(
PageRenderRequestHandlerImpl.java:55)
    at
$PageRenderRequestHandler_1154558bca5.handle($PageRenderRequestHandler_1154558bca5.java)
    at org.apache.tapestry.internal.test.PageLinkInvoker.invoke(
PageLinkInvoker.java:57)
    at org.apache.tapestry.test.PageTester.invoke(PageTester.java:184)
    at org.apache.tapestry.test.PageTester.renderPage(PageTester.java:144)
    at cn.crc.pjblog.test.pages.BlogPostOneTest.BlogPostOneTest1(
BlogPostOneTest.java:16)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:604)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:470)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:564)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:830)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(
TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.runWorkers(TestRunner.java:678)
    at org.testng.TestRunner.privateRun(TestRunner.java:624)
    at org.testng.TestRunner.run(TestRunner.java:495)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:300)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:295)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:275)
    at org.testng.SuiteRunner.run(SuiteRunner.java:190)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:792)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:765)
    at org.testng.TestNG.run(TestNG.java:699)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122)
Caused by: java.lang.RuntimeException: An exception occurred obtaining the
Spring WebApplicationContext: getAttribute() is not supported for
ContextForPageTester.
    at cn.crc.spring.SpringModule.build(SpringModule.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at
org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(
ServiceBuilderMethodInvoker.java:75)
    ... 64 more
Caused by: java.lang.UnsupportedOperationException: getAttribute() is not
supported for ContextForPageTester.
    at org.apache.tapestry.internal.test.PageTesterContext.getAttribute(
PageTesterContext.java:61)
    at $Context_1154558bccc.getAttribute($Context_1154558bccc.java)
    at $Context_1154558bccb.getAttribute($Context_1154558bccb.java)
    at cn.crc.spring.SpringModule.build(SpringModule.java:36)
    ... 69 more
FAILED: BlogPostOneTest1
java.lang.RuntimeException: java.lang.ClassNotFoundException: caught an
exception while obtaining a class file for cn.crc.pjblog.pages.BlogPostOne
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findClass
(ComponentInstantiatorSourceImpl.java:258)
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findInstantiator
(ComponentInstantiatorSourceImpl.java:240)
    at
$ComponentInstantiatorSource_1154558bcb3.findInstantiator($ComponentInstantiatorSource_1154558bcb3.java)
    at
org.apache.tapestry.internal.services.PageElementFactoryImpl.newRootComponentElement
(PageElementFactoryImpl.java:319)
    at
$PageElementFactory_1154558bcbe.newRootComponentElement($PageElementFactory_1154558bcbe.java)
    at
org.apache.tapestry.internal.services.PageLoaderProcessor.loadRootComponent(
PageLoaderProcessor.java:405)
    at org.apache.tapestry.internal.services.PageLoaderProcessor.loadPage(
PageLoaderProcessor.java:390)
    at org.apache.tapestry.internal.services.PageLoaderImpl.loadPage(
PageLoaderImpl.java:59)
    at $PageLoader_1154558bcbb.loadPage($PageLoader_1154558bcbb.java)
    at org.apache.tapestry.internal.services.PagePoolImpl.checkout(
PagePoolImpl.java:70)
    at $PagePool_1154558bcba.checkout($PagePool_1154558bcba.java)
    at org.apache.tapestry.internal.services.RequestPageCacheImpl.get(
RequestPageCacheImpl.java:44)
    at $RequestPageCache_1154558bcb7.get($RequestPageCache_1154558bcb7.java)
    at $RequestPageCache_1154558bcaf.get($RequestPageCache_1154558bcaf.java)
    at
org.apache.tapestry.internal.services.PageRenderRequestHandlerImpl.handle(
PageRenderRequestHandlerImpl.java:55)
    at
$PageRenderRequestHandler_1154558bca5.handle($PageRenderRequestHandler_1154558bca5.java)
    at org.apache.tapestry.internal.test.PageLinkInvoker.invoke(
PageLinkInvoker.java:57)
    at org.apache.tapestry.test.PageTester.invoke(PageTester.java:184)
    at org.apache.tapestry.test.PageTester.renderPage(PageTester.java:144)
    at cn.crc.pjblog.test.pages.BlogPostOneTest.BlogPostOneTest1(
BlogPostOneTest.java:16)
Caused by: java.lang.ClassNotFoundException: caught an exception while
obtaining a class file for cn.crc.pjblog.pages.BlogPostOne
    at javassist.Loader.findClass(Loader.java:359)
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass
(ComponentInstantiatorSourceImpl.java:85)
    at javassist.Loader.loadClass(Loader.java:311)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findClass
(ComponentInstantiatorSourceImpl.java:254)
    ... 41 more
Caused by: org.apache.tapestry.internal.services.TransformationException:
Error obtaining injected value for field
cn.crc.pjblog.pages.BlogPostOne.pdao: Exception constructing service
'WebApplicationContext': Error invoking service builder method
cn.crc.spring.SpringModule.build(Context) (at SpringModule.java:34) (for
service 'WebApplicationContext'): An exception occurred obtaining the Spring
WebApplicationContext: getAttribute() is not supported for
ContextForPageTester.
    at
org.apache.tapestry.internal.services.ComponentClassTransformerImpl.transformComponentClass
(ComponentClassTransformerImpl.java:137)
    at
$ComponentClassTransformer_1154558bcc0.transformComponentClass($ComponentClassTransformer_1154558bcc0.java)
    at
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.onLoad
(ComponentInstantiatorSourceImpl.java:177)
    at javassist.Loader.findClass(Loader.java:340)
    ... 45 more
Caused by: java.lang.RuntimeException: Error obtaining injected value for
field cn.crc.pjblog.pages.BlogPostOne.pdao: Exception constructing service
'WebApplicationContext': Error invoking service builder method
cn.crc.spring.SpringModule.build(Context) (at SpringModule.java:34) (for
service 'WebApplicationContext'): An exception occurred obtaining the Spring
WebApplicationContext: getAttribute() is not supported for
ContextForPageTester.
    at org.apache.tapestry.internal.services.InjectWorker.inject(
InjectWorker.java:84)
    at org.apache.tapestry.internal.services.InjectWorker.transform(
InjectWorker.java:53)
    at
$ComponentClassTransformWorker_1154558bcc9.transform($ComponentClassTransformWorker_1154558bcc9.java)
    at
$ComponentClassTransformWorker_1154558bcc6.transform($ComponentClassTransformWorker_1154558bcc6.java)
    at
org.apache.tapestry.internal.services.ComponentClassTransformerImpl.transformComponentClass
(ComponentClassTransformerImpl.java:131)
    ... 48 more
Caused by: java.lang.RuntimeException: Exception constructing service
'WebApplicationContext': Error invoking service builder method
cn.crc.spring.SpringModule.build(Context) (at SpringModule.java:34) (for
service 'WebApplicationContext'): An exception occurred obtaining the Spring
WebApplicationContext: getAttribute() is not supported for
ContextForPageTester.
    at
org.apache.tapestry.ioc.internal.services.JustInTimeObjectCreator.createObject
(JustInTimeObjectCreator.java:69)
    at
$WebApplicationContext_1154558bc95._delegate($WebApplicationContext_1154558bc95.java)
    at
$WebApplicationContext_1154558bc95.getBeanDefinitionNames($WebApplicationContext_1154558bc95.java)
    at cn.crc.spring.SpringObjectProvider.loadBeanNames(
SpringObjectProvider.java:49)
    at cn.crc.spring.SpringObjectProvider.provide(SpringObjectProvider.java
:73)
    at $ObjectProvider_1154558bc97.provide($ObjectProvider_1154558bc97.java)
    at $ObjectProvider_1154558bc90.provide($ObjectProvider_1154558bc90.java)
    at org.apache.tapestry.internal.services.InjectWorker.inject(
InjectWorker.java:80)
    ... 52 more
Caused by: java.lang.RuntimeException: Error invoking service builder method
cn.crc.spring.SpringModule.build(Context) (at SpringModule.java:34) (for
service 'WebApplicationContext'): An exception occurred obtaining the Spring
WebApplicationContext: getAttribute() is not supported for
ContextForPageTester.
    at
org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(
ServiceBuilderMethodInvoker.java:87)
    at
org.apache.tapestry.ioc.internal.SingletonServiceLifecycle.createService(
SingletonServiceLifecycle.java:31)
    at
org.apache.tapestry.ioc.internal.LifecycleWrappedServiceCreator.createObject
(LifecycleWrappedServiceCreator.java:54)
    at org.apache.tapestry.ioc.internal.InterceptorStackBuilder.createObject
(InterceptorStackBuilder.java:54)
    at
org.apache.tapestry.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject
(RecursiveServiceCreationCheckWrapper.java:60)
    at
org.apache.tapestry.ioc.internal.services.JustInTimeObjectCreator.createObject
(JustInTimeObjectCreator.java:61)
    ... 59 more
Caused by: java.lang.RuntimeException: An exception occurred obtaining the
Spring WebApplicationContext: getAttribute() is not supported for
ContextForPageTester.
    at cn.crc.spring.SpringModule.build(SpringModule.java:40)
    at
org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(
ServiceBuilderMethodInvoker.java:75)
    ... 64 more
Caused by: java.lang.UnsupportedOperationException: getAttribute() is not
supported for ContextForPageTester.
    at org.apache.tapestry.internal.test.PageTesterContext.getAttribute(
PageTesterContext.java:61)
    at $Context_1154558bccc.getAttribute($Context_1154558bccc.java)
    at $Context_1154558bccb.getAttribute($Context_1154558bccb.java)
    at cn.crc.spring.SpringModule.build(SpringModule.java:36)
    ... 69 more
... Removed 26 stack frames


2007/9/26, Joel Wiegman <[EMAIL PROTECTED]>:
>
> What's basically happening here is:
>
> The application module you are passing to your PageTester (via the "String
> appName" argument) does not load your Spring context.  In the alternative
> Spring integration link you provided this string would be "Spring", assuming
> the class is named "SpringModule" and that it exists in your <app>.services
> package.
>
> Hope that helps.
>
> -----Original Message-----
> From: Doublel [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, September 25, 2007 8:06 PM
> To: Tapestry users
> Subject: Re: Using PageTester with tapestry-spring
>
> 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>
> http://wiki.apache.org/tapestry/Tapestry5SpringIntegrationAlternative2
> <http://wiki.apache.org/tapestry/Tapestry5SpringIntegration>
>
> I want to test a tapestry page, but I got Exception .IPublicDAO is my
> spring class
>
> in my tapestry page i use inject
>
> @Inject
>     @SpringBean("IPublicDAO")
>     private IPublicDAO dao;
>
>
>
> 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
>
>
>
>
> 2007/9/25, Joel Wiegman <[EMAIL PROTECTED]>:
> >
> > Sure... what questions do you have?
> >
> > I'd rather not write 8 paragraphs and still not answer your questions...
> >
> > -----Original Message-----
> > From: Doublel [mailto:[EMAIL PROTECTED]
> > Sent: Monday, September 24, 2007 7:59 PM
> > To: Tapestry users
> > Subject: Re: Using PageTester with tapestry-spring
> >
> > I run into the same problem  I use
> > http://wiki.apache.org/tapestry/Tapestry5SpringIntegrationAlternative2
> > Can you explain more detail??
> >
> > 2007/9/24, Joel Wiegman <[EMAIL PROTECTED]>:
> > >
> > > Ivan,
> > >
> > > I'm using PageTester with Spring integration, but you'll have to
> > > jump through a few small hoops to accomplish this.
> > >
> > > I've written a "TestHarnessModule" in my <app dir>.services directory.
> > > This module contributes the Spring services manually.  My code looks
> > > very similar to what's found here:
> > >
> > > http://wiki.apache.org/tapestry/Tapestry5SpringIntegrationAlternativ
> > > e1
> > >
> > > Then, you can pass in the name of the module to your PageTester:
> > >
> > > PageTester pageTester= new PageTester("com.myapp.dir",
> > > "TestHarness");
> > >
> > > IMHO, what's really neat about this is you can point your tests to a
> > > different Spring configuration that uses mocked objects, mock
> > > databases, etc.  This is what we're doing and it has worked very well.
> > >
> > > Hope this helps,
> > >
> > > Joel
> > >
> > > -----Original Message-----
> > > From: Ivan Dubrov [mailto:[EMAIL PROTECTED]
> > > Sent: Monday, September 24, 2007 7:14 AM
> > > To: Tapestry users
> > > Subject: Using PageTester with tapestry-spring
> > >
> > > Hi,
> > >
> > > How can I use the PageTester with the Spring integration? The
> > > problem is that when PageTester creates the registry it does not
> > > adds SpringModuleDef to the list of modules and all my Spring
> > > services are unavailable because of this. Extending the PageTester
> > > is not possible as well, so I cannot extend it and provide
> > > additional module (like the TapestrySpringFilter does), so I have to
> > > copy-paste the complete PageTester and add a line to include
> SpringModuleDef module to the list.
> > >
> > > Are there any other ways that not include dumb copy-pasting?
> > >
> > > Just for clearness. How can I add an override to the services when
> > > running the tests? Creating AliasContribution's with the mode set to
> > > "test", right? But what to do if I want to keep my primary module
> > > clear of test services and keep all my test services in the test
> > > module inside the src/test Maven2 hierarchy (so they even aren't
> > > included in the release build)?
> > >
> > > --
> > > WBR,
> > > Ivan S. Dubrov
> > >
> > >
> > >
> > > --------------------------------------------------------------------
> > > - 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]
> >
> >
>
>
> --
> 得与失都是生活
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
得与失都是生活

Reply via email to