One thing comes to mind: I use Spring and the service in question is a Spring service injected with Tapestry's @Inject. Would that get in the way of Tapestry tests? Regards, Julien.
2011/7/16 Julien Martin <[email protected]> > I changed to that. I still get the same exception about the service i.e. * > Error obtaining injected value for field > com.cheetah.web.pages.ConfirmationPage.cheetahService: No service implements > the interface com.cheetah.service.CheetahService. > * > What puzzles me is that the app works when I use the browser but the test > fails with the above exception... > I am sure I must have misconfigured the test environment. > > Julien. > > 2011/7/16 Igor Drobiazko <[email protected]> > >> Usually src/main/webapp >> >> On Sat, Jul 16, 2011 at 5:50 PM, Julien Martin <[email protected]> wrote: >> >> > Hello Igor, >> > Thanks. Where should it point to then bearing in mind I use Maven? >> > Regards, >> > Julien. >> > >> > 2011/7/16 Igor Drobiazko <[email protected]> >> > >> > > 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 <[email protected]> >> 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 >> > > >> > >> >> >> >> -- >> Best regards, >> >> Igor Drobiazko >> http://tapestry5.de >> > >
