I tried changing my base test class to use a ServletContext instead: final MockServletContext servletContext = new MockServletContext(""); servletContext.addInitParameter(ContextLoader.CONFIG_LOCATION_PARAM, "classpath:/applicationContext-resources.xml, classpath:/applicationContext-dao.xml, " + "classpath:/applicationContext-service.xml, classpath*:/applicationContext.xml, " + "/WEB-INF/applicationContext*.xml");
tester = new PageTester(appPackage, appName, "src/main/webapp") { @Override protected ModuleDef[] provideExtraModuleDefs() { return new ModuleDef[]{new SpringModuleDef(servletContext)}; } }; No dice though. The error is below. I also tried created a TestModule as Igor recommended, but had a similar issue. public class TestModule { public void contributeApplicationContextCustomizer(OrderedConfiguration<ApplicationContextCustomizer> config) { ApplicationContextCustomizer customizer = new ApplicationContextCustomizer() { public void customizeApplicationContext(ServletContext servletContext, ConfigurableWebApplicationContext appContext) { appContext.setConfigLocation("classpath:/applicationContext-resources.xml, " + "classpath:/applicationContext-dao.xml, classpath:/applicationContext-service.xml, " + "classpath*:/applicationContext.xml, /WEB-INF/applicationContext*.xml"); } }; config.add("MyApplicationContextCustomizer", customizer); } } Running org.appfuse.webapp.pages.UserEditTest ERROR [main] Registry.log(108) | Error obtaining injected value for field org.appfuse.webapp.pages.admin.UserList.userManager: No service implements the interface org.appfuse.service.UserManager. ERROR [main] Registry.log(109) | Operations trace: ERROR [main] Registry.log(118) | [ 1] Constructing instance of page class org.appfuse.webapp.pages.admin.UserList ERROR [main] Registry.log(118) | [ 2] Creating ComponentAssembler for org.appfuse.webapp.pages.admin.UserList ERROR [main] Registry.log(118) | [ 3] Transforming component class org.appfuse.webapp.pages.admin.UserList ERROR [main] Registry.log(118) | [ 4] Injecting field userManager ERROR [main] RequestExceptionHandler.handleRequestException(63) | Processing of request failed with uncaught exception: java.lang.ClassNotFoundException: caught an exception while obtaining a class file for org.appfuse.webapp.pages.admin.UserList java.lang.RuntimeException: java.lang.ClassNotFoundException: caught an exception while obtaining a class file for org.appfuse.webapp.pages.admin.UserList at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.findClass(ComponentInstantiatorSourceImpl.java:309) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.getInstantiator(ComponentInstantiatorSourceImpl.java:285) at $ComponentInstantiatorSource_12dec96c460.getInstantiator($ComponentInstantiatorSource_12dec96c460.java) at org.apache.tapestry5.internal.pageload.PageLoaderImpl$4.invoke(PageLoaderImpl.java:222) at org.apache.tapestry5.internal.pageload.PageLoaderImpl$4.invoke(PageLoaderImpl.java:219) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063) at org.apache.tapestry5.internal.pageload.PageLoaderImpl.createAssembler(PageLoaderImpl.java:218) at org.apache.tapestry5.internal.pageload.PageLoaderImpl.getAssembler(PageLoaderImpl.java:208) at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:180) at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:174) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063) at org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:173) at $PageLoader_12dec96c47b.loadPage($PageLoader_12dec96c47b.java) at org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:81) at $PageSource_12dec96c47a.getPage($PageSource_12dec96c47a.java) at org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:74) at $RequestPageCache_12dec96c479.get($RequestPageCache_12dec96c479.java) at $RequestPageCache_12dec96c473.get($RequestPageCache_12dec96c473.java) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:55) at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2326) at $PageRenderRequestHandler_12dec96c477.handle($PageRenderRequestHandler_12dec96c477.java) at $PageRenderRequestHandler_12dec96c471.handle($PageRenderRequestHandler_12dec96c471.java) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) at $ComponentRequestHandler_12dec96c472.handlePageRender($ComponentRequestHandler_12dec96c472.java) at $ComponentRequestHandler_12dec96c451.handlePageRender($ComponentRequestHandler_12dec96c451.java) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) at $Dispatcher_12dec96c453.dispatch($Dispatcher_12dec96c453.java) at $Dispatcher_12dec96c44b.dispatch($Dispatcher_12dec96c44b.java) at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:321) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_12dec96c44d.service($RequestHandler_12dec96c44d.java) at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:984) at $RequestHandler_12dec96c44d.service($RequestHandler_12dec96c44d.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:974) at $RequestHandler_12dec96c44d.service($RequestHandler_12dec96c44d.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) at $RequestHandler_12dec96c44d.service($RequestHandler_12dec96c44d.java) at org.apache.tapestry5.internal.test.EndOfRequestCleanupFilter.service(EndOfRequestCleanupFilter.java:42) at $RequestHandler_12dec96c44d.service($RequestHandler_12dec96c44d.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:80) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) at $RequestHandler_12dec96c44d.service($RequestHandler_12dec96c44d.java) at $RequestHandler_12dec96c43c.service($RequestHandler_12dec96c43c.java) at org.apache.tapestry5.test.PageTester.renderPageAndReturnResponse(PageTester.java:209) at org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:179) at org.appfuse.webapp.pages.UserEditTest.testCancel(UserEditTest.java:17) 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:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:146) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97) 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:597) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at $Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:145) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:87) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) Caused by: java.lang.ClassNotFoundException: caught an exception while obtaining a class file for org.appfuse.webapp.pages.admin.UserList at javassist.Loader.findClass(Loader.java:359) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:102) at javassist.Loader.loadClass(Loader.java:311) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.findClass(ComponentInstantiatorSourceImpl.java:305) ... 83 more Caused by: org.apache.tapestry5.internal.services.TransformationException: Error obtaining injected value for field org.appfuse.webapp.pages.admin.UserList.userManager: No service implements the interface org.appfuse.service.UserManager. at org.apache.tapestry5.internal.services.ComponentClassTransformerImpl$1.run(ComponentClassTransformerImpl.java:200) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:50) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:47) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:46) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:56) at org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1058) at org.apache.tapestry5.internal.services.ComponentClassTransformerImpl.transformComponentClass(ComponentClassTransformerImpl.java:111) at $ComponentClassTransformer_12dec96c462.transformComponentClass($ComponentClassTransformer_12dec96c462.java) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:212) at javassist.Loader.findClass(Loader.java:340) ... 87 more Caused by: org.apache.tapestry5.ioc.internal.OperationException: Error obtaining injected value for field org.appfuse.webapp.pages.admin.UserList.userManager: No service implements the interface org.appfuse.service.UserManager. at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:102) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:69) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:46) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:56) at org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1058) at org.apache.tapestry5.internal.transform.InjectWorker.transform(InjectWorker.java:54) at $ComponentClassTransformWorker_12dec96c49a.transform($ComponentClassTransformWorker_12dec96c49a.java) at $ComponentClassTransformWorker_12dec96c48b.transform($ComponentClassTransformWorker_12dec96c48b.java) at org.apache.tapestry5.internal.services.ComponentClassTransformerImpl$1.run(ComponentClassTransformerImpl.java:194) ... 97 more Caused by: java.lang.RuntimeException: Error obtaining injected value for field org.appfuse.webapp.pages.admin.UserList.userManager: No service implements the interface org.appfuse.service.UserManager. at org.apache.tapestry5.internal.transform.InjectWorker$1.run(InjectWorker.java:75) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:50) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:47) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65) ... 104 more Caused by: java.lang.RuntimeException: No service implements the interface org.appfuse.service.UserManager. at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:670) at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:45) at org.apache.tapestry5.internal.services.ServiceInjectionProvider.provideInjection(ServiceInjectionProvider.java:40) at $InjectionProvider_12dec96c49c.provideInjection($InjectionProvider_12dec96c49c.java) at $InjectionProvider_12dec96c491.provideInjection($InjectionProvider_12dec96c491.java) at org.apache.tapestry5.internal.transform.InjectWorker$1.run(InjectWorker.java:67) ... 107 more -- View this message in context: http://tapestry.1045711.n5.nabble.com/Compiler-error-when-upgrading-from-tapestry-spring-5-0-18-to-5-2-4-tp3368139p3369652.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org