I really don't know how to do it , Thanks in advance.This is the code: web.xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>My Tapestry Application Test For T5.0.5</display-name>
<context-param> <param-name>tapestry.app-package</param-name> <param-value>cn.crc.pjblog</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/conf/applicationContext.xml </param-value> </context-param> <filter> <filter-name>app</filter-name> <filter-class>org.apache.tapestry.TapestryFilter</filter-class> </filter> <filter-mapping> <filter-name>app</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <!-- sys --> <listener> <listener-class>cn.crc.pjblog.servlet.SysListener</listener-class> </listener> <!-- Spring Framework --> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> </web-app> AppModule.java @SubModule(SpringModule.class) public class AppModule {} SpringModule.java public class SpringModule { public static void bind(ServiceBinder binder){ binder.bind(ObjectProvider.class,SpringObjectProvider.class) .withId("SpringObjectProvider"); } public static WebApplicationContext build(@InjectService("Context") Context context){ WebApplicationContext springContext = null; try { springContext = (WebApplicationContext) context.getAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); } catch (Exception e) { // TODO: handle exception throw new RuntimeException( SpringMessages.failureObtainingContext(e),e); } if (springContext == null) throw new RuntimeException( SpringMessages.missingContext()); return springContext; } /** * Contributes a provider named "Spring". */ public static void contributeMasterObjectProvider( OrderedConfiguration<ObjectProvider> configuration, ObjectLocator locator) { configuration.add("spring", locator .autobuild(SpringObjectProvider.class)); } SpringObjectProvider.java public class SpringObjectProvider implements ObjectProvider { private final Log _log; private final WebApplicationContext _context; private boolean _beansNamesLoaded = false; private final Map<String, String> _beanNames = newCaseInsensitiveMap(); public SpringObjectProvider(Log log, @InjectService("WebApplicationContext") WebApplicationContext context) { _log = log; _context = context; } private synchronized void loadBeanNames() { if (_beansNamesLoaded) return; for (String name : _context.getBeanDefinitionNames()) { _beanNames.put(name, name); } _log.info(SpringMessages.contextStartup(_beanNames.keySet())); _beansNamesLoaded = true; } /** * The expression is the name of a spring bean inside the context. */ public <T> T provide(Class<T> objectType, AnnotationProvider annotationProvider, ObjectLocator locator) { SpringBean annotation = annotationProvider.getAnnotation( SpringBean.class); if (annotation == null) return null; String beanName = annotation.value(); // Need to defer loading bean names to avoid some bootstrapping problems. loadBeanNames(); // Attempt to convert from the base insensitive name to the name as defined by Spring // (which is, to my knowledge) case sensitive. String effectiveName = _beanNames.containsKey(beanName) ? _beanNames.get(beanName) : beanName; try { Object raw = _context.getBean(effectiveName, objectType); return objectType.cast(raw); } catch (Exception ex) { throw new RuntimeException(SpringMessages.beanAccessFailure( effectiveName, objectType, ex), ex); } } } 2007/9/27, Joel Wiegman <[EMAIL PROTECTED]>: > > Without seeing any source, I can only guess that you're injecting > WebApplicationContext somewhere in your application and your SpringModule > isn't loading that service correctly? Tough to say without source. > > -----Original Message----- > From: Doublel [mailto:[EMAIL PROTECTED] > Sent: Thursday, September 27, 2007 1:04 AM > To: Tapestry users > Subject: Re: Using PageTester with tapestry-spring > > 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($ComponentClassTr > > ansformWorker_114ba61b606.java) > > at > > > > $ComponentClassTransformWorker_114ba61b603.transform($ComponentClassTr > > ansformWorker_114ba61b603.java) > > at > > > > org.apache.tapestry.internal.services.ComponentClassTransformerImpl.tr > > ansformComponentClass (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/Tapestry5SpringIntegrationAlternativ > > > e2 > > > 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/Tapestry5SpringIntegrationAlternat > > > > iv > > > > 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] > > > > > > > -- > 得与失都是生活 > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- 得与失都是生活