Not sure why your service is not bund but your context path src/main/java is wrong.
On Sat, Jul 16, 2011 at 5:11 PM, Julien Martin <bal...@gmail.com> wrote: > Hello, > I have an issue with a unit test in Tapestry. It seems Tapestry is not able > to find a service when I run the unit tests whereas there are no problems > when I run the application from the browser. What have I misconfigured? > Thanks in advance, > Julien. > > Here is the unit test: > * > @Test > public void test1() { > String appPackage = "com.cheetah.web"; > String appName = "app"; > PageTester tester = new PageTester(appPackage, appName, > "src/main/java"); > Document doc = tester.renderPage("CreateJobPosting"); > Element createJobPostingForm = > doc.getElementById("createJobPostingForm"); > Map<String, String> fieldValues = new HashMap<String, String>(); > fieldValues.put("jobPostingTitle", "Développeur > java/Tapestry/Junit"); > fieldValues.put("jobPostingBody", "Poste de de développeur agile/XP > qui travaillera en TDD exclusivement"); > Document docFromForm = tester.submitForm(createJobPostingForm, > fieldValues); > assertTrue(docFromForm.toString().contains("TDD exclusivement")); > }* > > > > Here is the stack trace: > SLF4J: Class path contains multiple SLF4J bindings. > SLF4J: Found binding in > > [jar:file:/home/julien/.m2/repository/org/slf4j/slf4j-simple/1.5.8/slf4j-simple-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: Found binding in > > [jar:file:/home/julien/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an > explanation. > 127 [main] INFO org.apache.tapestry5.ioc.RegistryBuilder - Adding module > definition for class org.apache.tapestry5.ioc.services.TapestryIOCModule > 421 [main] INFO org.apache.tapestry5.ioc.RegistryBuilder - Adding module > definition for class org.apache.tapestry5.beanvalidator.BeanValidatorModule > 438 [main] INFO org.apache.tapestry5.ioc.RegistryBuilder - Adding module > definition for class org.apache.tapestry5.spring.SpringModule > 927 [main] INFO org.apache.tapestry5.ioc.RegistryBuilder - Adding module > definition for class org.apache.tapestry5.services.TapestryModule > 1226 [main] INFO org.apache.tapestry5.ioc.RegistryBuilder - Adding module > definition for class org.apache.tapestry5.internal.services.InternalModule > 1294 [main] INFO org.apache.tapestry5.ioc.RegistryBuilder - Adding module > definition for class com.cheetah.web.services.AppModule > 1307 [main] INFO org.apache.tapestry5.ioc.RegistryBuilder - Adding module > definition for class org.apache.tapestry5.internal.test.PageTesterModule > 2878 [main] INFO > org.apache.tapestry5.services.TapestryModule.ComponentClassResolver - > Available pages: > (blank): com.cheetah.web.pages.CreateJobPostingTests > ConfirmationPage: com.cheetah.web.pages.ConfirmationPage > CreateJobPosting: com.cheetah.web.pages.CreateJobPosting > CreateJobPostingTests: com.cheetah.web.pages.CreateJobPostingTests > ExceptionReport: org.apache.tapestry5.corelib.pages.ExceptionReport > JobPostingsTable: com.cheetah.web.pages.JobPostingsTable > PropertyDisplayBlocks: > org.apache.tapestry5.corelib.pages.PropertyDisplayBlocks > PropertyEditBlocks: org.apache.tapestry5.corelib.pages.PropertyEditBlocks > ServiceStatus: org.apache.tapestry5.corelib.pages.ServiceStatus > > 2882 [main] INFO > org.apache.tapestry5.services.TapestryModule.ComponentClassResolver - > Available components: > ActionLink: org.apache.tapestry5.corelib.components.ActionLink > AddRowLink: org.apache.tapestry5.corelib.components.AddRowLink > AjaxFormLoop: org.apache.tapestry5.corelib.components.AjaxFormLoop > Any: org.apache.tapestry5.corelib.components.Any > BeanDisplay: org.apache.tapestry5.corelib.components.BeanDisplay > BeanEditForm: org.apache.tapestry5.corelib.components.BeanEditForm > BeanEditor: org.apache.tapestry5.corelib.components.BeanEditor > Checkbox: org.apache.tapestry5.corelib.components.Checkbox > DateField: org.apache.tapestry5.corelib.components.DateField > Delegate: org.apache.tapestry5.corelib.components.Delegate > Error: org.apache.tapestry5.corelib.components.Error > Errors: org.apache.tapestry5.corelib.components.Errors > EventLink: org.apache.tapestry5.corelib.components.EventLink > ExceptionDisplay: org.apache.tapestry5.corelib.components.ExceptionDisplay > Form: org.apache.tapestry5.corelib.components.Form > FormFragment: org.apache.tapestry5.corelib.components.FormFragment > FormInjector: org.apache.tapestry5.corelib.components.FormInjector > Grid: org.apache.tapestry5.corelib.components.Grid > GridCell: org.apache.tapestry5.corelib.components.GridCell > GridColumns: org.apache.tapestry5.corelib.components.GridColumns > GridPager: org.apache.tapestry5.corelib.components.GridPager > GridRows: org.apache.tapestry5.corelib.components.GridRows > Hidden: org.apache.tapestry5.corelib.components.Hidden > If: org.apache.tapestry5.corelib.components.If > Label: org.apache.tapestry5.corelib.components.Label > Layout: com.cheetah.web.components.Layout > LinkSubmit: org.apache.tapestry5.corelib.components.LinkSubmit > Loop: org.apache.tapestry5.corelib.components.Loop > Output: org.apache.tapestry5.corelib.components.Output > OutputRaw: org.apache.tapestry5.corelib.components.OutputRaw > PageLink: org.apache.tapestry5.corelib.components.PageLink > Palette: org.apache.tapestry5.corelib.components.Palette > PasswordField: org.apache.tapestry5.corelib.components.PasswordField > ProgressiveDisplay: > org.apache.tapestry5.corelib.components.ProgressiveDisplay > PropertyDisplay: org.apache.tapestry5.corelib.components.PropertyDisplay > PropertyEditor: org.apache.tapestry5.corelib.components.PropertyEditor > Radio: org.apache.tapestry5.corelib.components.Radio > RadioGroup: org.apache.tapestry5.corelib.components.RadioGroup > RemoveRowLink: org.apache.tapestry5.corelib.components.RemoveRowLink > RenderObject: org.apache.tapestry5.corelib.components.RenderObject > Select: org.apache.tapestry5.corelib.components.Select > Submit: org.apache.tapestry5.corelib.components.Submit > SubmitNotifier: org.apache.tapestry5.corelib.components.SubmitNotifier > TextArea: org.apache.tapestry5.corelib.components.TextArea > TextField: org.apache.tapestry5.corelib.components.TextField > TextOutput: org.apache.tapestry5.corelib.components.TextOutput > Trigger: org.apache.tapestry5.corelib.components.Trigger > Unless: org.apache.tapestry5.corelib.components.Unless > Zone: org.apache.tapestry5.corelib.components.Zone > > 2893 [main] INFO > org.apache.tapestry5.services.TapestryModule.ComponentClassResolver - > Available mixins: > Autocomplete: org.apache.tapestry5.corelib.mixins.Autocomplete > DiscardBody: org.apache.tapestry5.corelib.mixins.DiscardBody > NotEmpty: org.apache.tapestry5.corelib.mixins.NotEmpty > RenderClientId: org.apache.tapestry5.corelib.mixins.RenderClientId > RenderDisabled: org.apache.tapestry5.corelib.mixins.RenderDisabled > RenderInformals: org.apache.tapestry5.corelib.mixins.RenderInformals > RenderNotification: org.apache.tapestry5.corelib.mixins.RenderNotification > TriggerFragment: org.apache.tapestry5.corelib.mixins.TriggerFragment > > 5957 [main] ERROR org.apache.tapestry5.ioc.Registry -* Error obtaining > injected value for field > com.cheetah.web.pages.ConfirmationPage.cheetahService: No service > implements > the interface com.cheetah.service.CheetahService.* > 5957 [main] ERROR org.apache.tapestry5.ioc.Registry - Operations trace: > 5958 [main] ERROR org.apache.tapestry5.ioc.Registry - [ 1] Constructing > instance of page class com.cheetah.web.pages.CreateJobPosting > 5958 [main] ERROR org.apache.tapestry5.ioc.Registry - [ 2] Assembling root > component for page CreateJobPosting > 5958 [main] ERROR org.apache.tapestry5.ioc.Registry - [ 3] Transforming > component class com.cheetah.web.pages.ConfirmationPage > 5959 [main] ERROR org.apache.tapestry5.ioc.Registry - [ 4] Injecting field > cheetahService > 5973 [main] ERROR > org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler - > Processing of request failed with uncaught exception: Exception assembling > root component of page CreateJobPosting: Could not convert 'jobPosting' > into > a component parameter binding: Exception generating conduit for expression > 'jobPosting': java.lang.NoClassDefFoundError: > com/cheetah/web/pages/ConfirmationPage > java.lang.RuntimeException: Exception assembling root component of page > CreateJobPosting: Could not convert 'jobPosting' into a component parameter > binding: Exception generating conduit for expression 'jobPosting': > java.lang.NoClassDefFoundError: com/cheetah/web/pages/ConfirmationPage > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:124) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.access$000(ComponentAssemblerImpl.java:38) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:82) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:79) > 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.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:77) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:182) > 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_1313378ed91.loadPage($PageLoader_1313378ed91.java) > at > > org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:81) > at $PageSource_1313378ed90.getPage($PageSource_1313378ed90.java) > at > > org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:74) > at $RequestPageCache_1313378ed8f.get($RequestPageCache_1313378ed8f.java) > at $RequestPageCache_1313378ed89.get($RequestPageCache_1313378ed89.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_1313378ed8d.handle($PageRenderRequestHandler_1313378ed8d.java) > at > > $PageRenderRequestHandler_1313378ed87.handle($PageRenderRequestHandler_1313378ed87.java) > at > > org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) > at > > org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) > at > > $ComponentRequestHandler_1313378ed88.handlePageRender($ComponentRequestHandler_1313378ed88.java) > at > > $ComponentRequestHandler_1313378ed67.handlePageRender($ComponentRequestHandler_1313378ed67.java) > at > > org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) > at $Dispatcher_1313378ed69.dispatch($Dispatcher_1313378ed69.java) > at $Dispatcher_1313378ed61.dispatch($Dispatcher_1313378ed61.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_1313378ed63.service($RequestHandler_1313378ed63.java) > at > > org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:984) > at $RequestHandler_1313378ed63.service($RequestHandler_1313378ed63.java) > at > > org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:974) > at $RequestHandler_1313378ed63.service($RequestHandler_1313378ed63.java) > at > > org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) > at $RequestHandler_1313378ed63.service($RequestHandler_1313378ed63.java) > at > > org.apache.tapestry5.internal.test.EndOfRequestCleanupFilter.service(EndOfRequestCleanupFilter.java:42) > at $RequestHandler_1313378ed63.service($RequestHandler_1313378ed63.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_1313378ed63.service($RequestHandler_1313378ed63.java) > at $RequestHandler_1313378ed52.service($RequestHandler_1313378ed52.java) > at > > org.apache.tapestry5.test.PageTester.renderPageAndReturnResponse(PageTester.java:209) > at org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:179) > at > > com.cheetah.web.pages.CreateJobPostingTests.test1(CreateJobPostingTests.java:27) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > 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.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.junit.runner.JUnitCore.run(JUnitCore.java:157) > at > > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71) > at > > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:199) > at > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:62) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) > Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: Could > not convert 'jobPosting' into a component parameter binding: Exception > generating conduit for expression 'jobPosting': > java.lang.NoClassDefFoundError: com/cheetah/web/pages/ConfirmationPage [at > classpath:com/cheetah/web/pages/CreateJobPosting.tml, line 3] > at > > org.apache.tapestry5.internal.services.BindingSourceImpl.newBinding(BindingSourceImpl.java:82) > at > $BindingSource_1313378eda6.newBinding($BindingSource_1313378eda6.java) > at > > org.apache.tapestry5.internal.services.PageElementFactoryImpl.newBinding(PageElementFactoryImpl.java:184) > at > > $PageElementFactory_1313378ed9d.newBinding($PageElementFactory_1313378ed9d.java) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl$12.execute(PageLoaderImpl.java:859) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.runActions(ComponentAssemblerImpl.java:217) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:103) > ... 76 more > Caused by: > org.apache.tapestry5.internal.services.PropertyExpressionException: > Exception generating conduit for expression 'jobPosting': > java.lang.NoClassDefFoundError: com/cheetah/web/pages/ConfirmationPage > at > > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.build(PropertyConduitSourceImpl.java:1325) > at > > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.create(PropertyConduitSourceImpl.java:1208) > at > > $PropertyConduitSource_1313378ee09.create($PropertyConduitSource_1313378ee09.java) > at > > org.apache.tapestry5.internal.bindings.PropBindingFactory.newBinding(PropBindingFactory.java:49) > at > $BindingFactory_1313378ee0a.newBinding($BindingFactory_1313378ee0a.java) > at > $BindingFactory_1313378ee01.newBinding($BindingFactory_1313378ee01.java) > at > > org.apache.tapestry5.internal.services.BindingSourceImpl.newBinding(BindingSourceImpl.java:78) > ... 82 more > Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: > com/cheetah/web/pages/ConfirmationPage > at > > org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:103) > at > > org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.getAdapter(PropertyAccessImpl.java:68) > at > $PropertyAccess_1313378ed59.getAdapter($PropertyAccess_1313378ed59.java) > at > > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.infoForPropertyOrPublicField(PropertyConduitSourceImpl.java:1028) > at > > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.infoForMember(PropertyConduitSourceImpl.java:1021) > at > > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.createGetterAndSetter(PropertyConduitSourceImpl.java:451) > at > > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.createAccessors(PropertyConduitSourceImpl.java:435) > at > > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.createInstance(PropertyConduitSourceImpl.java:290) > at > > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.build(PropertyConduitSourceImpl.java:1321) > ... 88 more > Caused by: java.lang.NoClassDefFoundError: > com/cheetah/web/pages/ConfirmationPage > at java.lang.Class.getDeclaredMethods0(Native Method) > at java.lang.Class.privateGetDeclaredMethods(Class.java:2444) > at java.lang.Class.getDeclaredMethods(Class.java:1808) > at java.beans.Introspector$1.run(Introspector.java:1324) > at java.security.AccessController.doPrivileged(Native Method) > at > java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1322) > at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1188) > at java.beans.Introspector.getBeanInfo(Introspector.java:423) > at java.beans.Introspector.getBeanInfo(Introspector.java:189) > at > > org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:87) > ... 96 more > Caused by: java.lang.ClassNotFoundException: caught an exception while > obtaining a class file for com.cheetah.web.pages.ConfirmationPage > 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:266) > ... 106 more > Caused by: org.apache.tapestry5.internal.services.TransformationException: > Error obtaining injected value for field > com.cheetah.web.pages.ConfirmationPage.cheetahService: No service > implements > the interface com.cheetah.service.CheetahService. > at > > org.apache.tapestry5.internal.services.ComponentClassTransformerImpl$1.run(ComponentClassTransformerImpl.java:208) > 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:119) > at > > $ComponentClassTransformer_1313378ed78.transformComponentClass($ComponentClassTransformer_1313378ed78.java) > at > > org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:212) > at javassist.Loader.findClass(Loader.java:340) > ... 109 more > Caused by: org.apache.tapestry5.ioc.internal.OperationException: Error > obtaining injected value for field > com.cheetah.web.pages.ConfirmationPage.cheetahService: No service > implements > the interface com.cheetah.service.CheetahService. > 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_1313378edb0.transform($ComponentClassTransformWorker_1313378edb0.java) > at > > $ComponentClassTransformWorker_1313378eda1.transform($ComponentClassTransformWorker_1313378eda1.java) > at > > org.apache.tapestry5.internal.services.ComponentClassTransformerImpl$1.run(ComponentClassTransformerImpl.java:202) > ... 119 more > Caused by: java.lang.RuntimeException: Error obtaining injected value for > field com.cheetah.web.pages.ConfirmationPage.cheetahService: No service > implements the interface com.cheetah.service.CheetahService. > 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) > ... 126 more > Caused by: java.lang.RuntimeException: No service implements the interface > com.cheetah.service.CheetahService. > 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_1313378edba.provideInjection($InjectionProvider_1313378edba.java) > at > > $InjectionProvider_1313378eda7.provideInjection($InjectionProvider_1313378eda7.java) > at > > org.apache.tapestry5.internal.transform.InjectWorker$1.run(InjectWorker.java:67) > ... 129 more > > java.lang.NullPointerException > at > > org.apache.tapestry5.test.PageTester.validateElementName(PageTester.java:286) > at > > org.apache.tapestry5.test.PageTester.submitFormAndReturnResponse(PageTester.java:421) > at org.apache.tapestry5.test.PageTester.submitForm(PageTester.java:399) > at > > com.cheetah.web.pages.CreateJobPostingTests.test1(CreateJobPostingTests.java:32) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > 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.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.junit.runner.JUnitCore.run(JUnitCore.java:157) > at > > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71) > at > > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:199) > at > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:62) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) > > > Process finished with exit code 255 > -- Best regards, Igor Drobiazko http://tapestry5.de