I meant use t:id="accountPasswordConfirmationField" value="accountPasswordConfirmation"
Then you can remove the name from @InjectComponent. On Tue, Feb 14, 2012 at 12:57 PM, Julien Martin <bal...@gmail.com> wrote: > Jonathan, > > Make the t:id match the field name so you don't separately specify it >> > in the @InjectComponent >> > I would like to try this but notice that I use both the field component > and the field i.e.: > @InjectComponent("accountPasswordConfirmation") > private PasswordField accountPasswordConfirmationField; > @Property > private String accountPasswordConfirmation; > Hence the difference in name. > > > Try removing that field and related tml markup and see if you get the >> same error on another field. >> > I am going to try that. > > > Is the tml file you are editing really the tml being used? I've hit >> strange stuff with old .class or .tml files in the classpath courtesy >> of Eclipse. >> >> Is this something that works when you run it, but only fails in testing? >> > Good point: it definitely runs fine in the browser but I get errors with > my unit tests. > > > I'll come back as soon as I have tried point two...[?] > Regards, > Julien. > > >> >> >> >> On Tue, Feb 14, 2012 at 7:19 AM, Julien Martin <bal...@gmail.com> wrote: >> > Thanks for replying Jonathan, >> > >> > Here is the java: >> > *package com.bignibou.web.pages.account;* >> > * >> > * >> > *import java.util.List;* >> > * >> > * >> > *import javax.validation.Valid;* >> > *import javax.validation.constraints.NotNull;* >> > * >> > * >> > *import org.apache.log4j.Logger;* >> > *import org.apache.tapestry5.EventConstants;* >> > *import org.apache.tapestry5.Link;* >> > *import org.apache.tapestry5.SelectModel;* >> > *import org.apache.tapestry5.annotations.AfterRender;* >> > *import org.apache.tapestry5.annotations.DiscardAfter;* >> > *import org.apache.tapestry5.annotations.InjectComponent;* >> > *import org.apache.tapestry5.annotations.InjectPage;* >> > *import org.apache.tapestry5.annotations.OnEvent;* >> > *import org.apache.tapestry5.annotations.Persist;* >> > *import org.apache.tapestry5.annotations.Property;* >> > *import org.apache.tapestry5.annotations.SetupRender;* >> > *import org.apache.tapestry5.corelib.components.Form;* >> > *import org.apache.tapestry5.corelib.components.PasswordField;* >> > *import org.apache.tapestry5.corelib.components.TextField;* >> > *import org.apache.tapestry5.ioc.Messages;* >> > *import org.apache.tapestry5.ioc.annotations.Inject;* >> > *import org.apache.tapestry5.json.JSONObject;* >> > *import org.apache.tapestry5.services.PageRenderLinkSource;* >> > *import org.apache.tapestry5.services.SelectModelFactory;* >> > *import org.apache.tapestry5.services.javascript.JavaScriptSupport;* >> > * >> > * >> > *import com.bignibou.domain.ChildMinderStatus;* >> > *import com.bignibou.domain.ChildminderAccount;* >> > *import com.bignibou.service.AccountService;* >> > *import com.bignibou.web.pages.utils.JSonPostcodesWithQueryParam;* >> > * >> > * >> > *public class ChildminderRegistration {* >> > * >> > * >> > * private Logger log = Logger.getLogger(ChildminderRegistration.class);* >> > * >> > * >> > * @Inject* >> > * private JavaScriptSupport javaScriptSupport;* >> > * >> > * >> > * @Inject* >> > * private PageRenderLinkSource pageRenderLinkSource;* >> > * >> > * >> > * @Property* >> > * @Persist* >> > * @Valid* >> > * private ChildminderAccount childminderAccount;* >> > * >> > * >> > * @Property* >> > * private SelectModel childminderStatusSelectModel;* >> > * >> > * >> > * @Inject* >> > * private Messages messages;* >> > * >> > * >> > * @Inject* >> > * private SelectModelFactory selectModelFactory;* >> > * >> > * >> > * @Property* >> > * @NotNull* >> > * private String accountPasswordConfirmation;* >> > * >> > * >> > * @Property* >> > * private List<ChildMinderStatus> childMinderStatusList;* >> > * >> > * >> > * @Inject* >> > * private AccountService accountService;* >> > * >> > * >> > * @InjectComponent("accountEmailAddress")* >> > * private TextField accountEmailAddressField;* >> > * >> > * >> > * @InjectComponent("accountPassword")* >> > * private PasswordField accountPasswordField;* >> > * >> > * >> > * @InjectComponent("accountPasswordConfirmation")* >> > * private PasswordField accountPasswordConfirmationField;* >> > * >> > * >> > * @InjectComponent* >> > * private Form childminderRegistrationForm;* >> > * >> > * >> > * @SetupRender* >> > * void prepare() {* >> > * childminderAccount = new ChildminderAccount();* >> > * childMinderStatusList = accountService.loadChildminderStatusList();* >> > * childminderStatusSelectModel = >> > selectModelFactory.create(childMinderStatusList, >> > "childMinderStatusDescription");* >> > * }* >> > * >> > * >> > * @AfterRender* >> > * void afterRender() {* >> > * Link jSonPostcodesWithQueryParamLink = >> > >> pageRenderLinkSource.createPageRenderLink(JSonPostcodesWithQueryParam.class); >> > * >> > * String link = jSonPostcodesWithQueryParamLink.toAbsoluteURI();* >> > * JSONObject specs = new JSONObject();* >> > * specs.put("link", link);* >> > * javaScriptSupport.addInitializerCall("autocomplete", specs);* >> > * }* >> > * >> > * >> > * @OnEvent(value = EventConstants.VALIDATE, component = >> > "childminderRegistrationForm")* >> > * void validateRegistrationForm() {// TODO: refactor* >> > * >> > * >> > * if >> > >> (!accountService.validateEmailAddress(childminderAccount.getAccountEmailAddress())) >> > {* >> > * childminderRegistrationForm.recordError(accountEmailAddressField, >> > messages.get("invalid-email-address"));// TODO* >> > * }* >> > * >> > * >> > * if >> > >> (!accountService.validateEmailAddressDoesNotExist(childminderAccount.getAccountEmailAddress())) >> > {* >> > * childminderRegistrationForm.recordError(accountEmailAddressField, >> "email >> > existe déjà");* >> > * }* >> > * >> > * >> > * if >> > >> (!accountService.validatePasswordsEqual(childminderAccount.getAccountPassword(), >> > accountPasswordConfirmation)) {* >> > * childminderRegistrationForm.recordError(accountPasswordField, >> "passwords >> > must match");// todo* >> > * >> childminderRegistrationForm.recordError(accountPasswordConfirmationField, >> > "passwords must match");// todo* >> > * }* >> > * >> > * >> > * if >> > >> (!accountService.validatePasswordStrength(childminderAccount.getAccountPassword())) >> > {* >> > * childminderRegistrationForm.recordError(accountPasswordField, >> "passwords >> > too weak");// todo* >> > * >> childminderRegistrationForm.recordError(accountPasswordConfirmationField, >> > "passwords too weak");// todo* >> > * }* >> > * >> > * >> > * if (childminderRegistrationForm.isValid()) {* >> > * accountService.registerChildminderAccount(childminderAccount);* >> > * successPage.setUp(childminderAccount);* >> > * }* >> > * }* >> > * >> > * >> > * @InjectPage* >> > * private Success successPage;* >> > * >> > * >> > * @DiscardAfter* >> > * @OnEvent(EventConstants.SUBMIT)* >> > * Object successfulRegistrationForm() {* >> > * return successPage;* >> > * }* >> > *}* >> > Here is the tml: >> > *<t:childminderlayout xmlns:t=" >> > http://tapestry.apache.org/schema/tapestry_5_3.xsd" >> > xmlns:p="tapestry:parameter" >> > t:title="message:childminder-registration-title">* >> > * <form t:type="form" t:id="childminderRegistrationForm" >> > t:clientValidation="none">* >> > * <table class="formTable">* >> > * <tr>* >> > * <td><label class="right-align" t:type="label" >> for="accountEmailAddress" >> > /></td>* >> > * <td><input t:type="textfield" t:id="accountEmailAddress" >> > name="accountEmailAddress" >> value="childminderAccount.accountEmailAddress" >> > t:validate="required" /></td>* >> > * <td class="error"><t:error for="accountEmailAddress" /></td>* >> > * </tr>* >> > * >> > * >> > * <tr>* >> > * <td><label class="right-align" t:type="label" for="accountFirstName" >> > /></td>* >> > * <td><input t:type="textfield" t:id="accountFirstName" >> > value="childminderAccount.accountFirstName" /></td>* >> > * <td><t:error for="accountFirstName" /></td>* >> > * </tr>* >> > * >> > * >> > * <tr>* >> > * <td><label class="right-align" t:type="label" for="accountLastName" >> > /></td>* >> > * <td><input t:type="textfield" t:id="accountLastName" >> > value="childminderAccount.accountLastName" /></td>* >> > * <td><t:error for="accountLastName" /></td>* >> > * </tr>* >> > * >> > * >> > * <tr>* >> > * <td><label class="right-align" t:type="label" for="accountPassword" >> > /></td>* >> > * <td><input t:type="passwordfield" t:id="accountPassword" >> > value="childminderAccount.accountPassword" t:validate="required" >> /></td>* >> > * <td><t:error for="accountPassword" /></td>* >> > * </tr>* >> > * >> > * >> > * <tr>* >> > * <td><label class="right-align" t:type="label" >> > for="accountPasswordConfirmation" /></td>* >> > * <td><input t:type="passwordfield" t:id="accountPasswordConfirmation" >> > value="accountPasswordConfirmation" t:validate="required" /></td>* >> > * <td><t:error for="accountPasswordConfirmation" /></td>* >> > * </tr>* >> > * >> > * >> > * <tr>* >> > * <td><label class="right-align" t:type="label" for="accountPostcode" >> > /></td>* >> > * <td><input t:type="textfield" t:id="accountPostcode" size="5" >> > value="childminderAccount.accountPostcode" t:validate="required" >> /></td>* >> > * <td><t:error for="accountPostcode" /></td>* >> > * </tr>* >> > * >> > * >> > * <tr>* >> > * <td><label class="right-align" t:type="label" for="childminderStatus" >> > /></td>* >> > * <td><input t:type="select" model="childminderStatusSelectModel" >> > t:id="childminderStatus" value="childminderAccount.childminderstatusID" >> > blankLabel="votre status" blankOption="always"* >> > * t:validate="required" /></td>* >> > * <td><t:error for="childminderStatus" /></td>* >> > * </tr>* >> > * <tr>* >> > * <td><label class="right-align" t:type="label" for="kaptcha" /></td>* >> > * <td><t:kaptchafield t:image="kaptchaImage" t:id="kaptcha" >> > t:validate="required" /></td>* >> > * <td><t:kaptchaimage t:id="kaptchaImage" /> <t:error for="kaptcha" >> /></td>* >> > * </tr>* >> > * <tr>* >> > * <td></td>* >> > * <td colspan="2"><input t:type="submit" type="submit" >> > value="message:childminder-registration-submit" /></td>* >> > * </tr>* >> > * >> > * >> > * </table>* >> > * </form>* >> > * >> > * >> > * <t:pagelink page="advertisement/NewAdvertisement">creer nouvelle >> > annonce</t:pagelink>* >> > *</t:childminderlayout>* >> > >> > Regards, >> > Julien. >> > >> > Le 14 février 2012 13:09, Jonathan Barker <jonathan.theit...@gmail.com> >> a >> > écrit : >> > >> >> The error doesn't look like it has anything to do with testing. >> >> >> >> Java and tml files please. >> >> >> >> On Mon, Feb 13, 2012 at 4:17 PM, Julien Martin <bal...@gmail.com> >> wrote: >> >> > up please >> >> > >> >> > Le 13 février 2012 13:07, Julien Martin <bal...@gmail.com> a écrit : >> >> > >> >> >> Hello, >> >> >> >> >> >> I am trying to implement some tapestry tests for my pages. Here is >> the >> >> >> test method: >> >> >> >> >> >> *@Test* >> >> >> >> >> >> * public void test() {* >> >> >> * String appPackage = "com.bignibou.web";* >> >> >> * String appName = "app";* >> >> >> * BignibouPageTester tester = new BignibouPageTester(appPackage, >> >> appName, >> >> >> "src/main/webapp");* >> >> >> * Document doc = >> tester.renderPage("account/childminderregistration");* >> >> >> * Element childminderRegistrationForm = >> >> >> doc.getElementById("childminderRegistrationForm");* >> >> >> * Map<String, String> fieldValues = new HashMap<String, String>();* >> >> >> * fieldValues.put("accountEmailAddress", "bal...@yahoo.fr");* >> >> >> * fieldValues.put("accountFirstName", "Julien");* >> >> >> * fieldValues.put("accountLastName", "Martin");* >> >> >> * fieldValues.put("accountPassword", "mmmmmm");* >> >> >> * fieldValues.put("accountPasswordConfirmation", "mmmmmm");* >> >> >> * fieldValues.put("accountPostcode", "75003");* >> >> >> * fieldValues.put("childminderStatus", "nourrice");* >> >> >> * assertNotNull(tester);* >> >> >> * assertNotNull(doc);* >> >> >> * assertNotNull(childminderRegistrationForm);* >> >> >> * Document docFromForm = >> tester.submitForm(childminderRegistrationForm, >> >> >> fieldValues);* >> >> >> * assertTrue(docFromForm.toString().contains("bal...@yahoo.fr"));* >> >> >> * }* >> >> >> >> >> >> Here is the stack trace of the exception I get: >> >> >> >> >> >> 5363 [main] ERROR org.apache.tapestry5.ioc.Registry - Unable to >> inject >> >> >> component into field accountEmailAddressField of class >> >> >> com.bignibou.web.pages.account.ChildminderRegistration: Component >> >> >> account/ChildminderRegistration does not contain embedded component >> >> >> 'accountEmailAddress'. >> >> >> 5363 [main] ERROR org.apache.tapestry5.ioc.Registry - Operations >> trace: >> >> >> 5363 [main] ERROR org.apache.tapestry5.ioc.Registry - [ 1] >> Constructing >> >> >> instance of page class >> >> >> com.bignibou.web.pages.account.ChildminderRegistration >> >> >> 5370 [main] ERROR >> >> >> >> org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler - >> >> >> Processing of request failed with uncaught exception: Unable to >> inject >> >> >> component into field accountEmailAddressField of class >> >> >> com.bignibou.web.pages.account.ChildminderRegistration: Component >> >> >> account/ChildminderRegistration does not contain embedded component >> >> >> 'accountEmailAddress'. >> >> >> org.apache.tapestry5.ioc.internal.OperationException: Unable to >> inject >> >> >> component into field accountEmailAddressField of class >> >> >> com.bignibou.web.pages.account.ChildminderRegistration: Component >> >> >> account/ChildminderRegistration does not contain embedded component >> >> >> 'accountEmailAddress'. >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:177) >> >> >> at $PageLoader_c5334e9b702b.loadPage(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:104) >> >> >> at $PageSource_c5334e9b7028.getPage(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:82) >> >> >> at $RequestPageCache_c5334e9b7027.get(Unknown Source) >> >> >> at $RequestPageCache_c5334e9b7022.get(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:55) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.services.TapestryModule$37.handle(TapestryModule.java:2207) >> >> >> at $PageRenderRequestHandler_c5334e9b7026.handle(Unknown Source) >> >> >> at $PageRenderRequestHandler_c5334e9b7020.handle(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) >> >> >> at $ComponentRequestHandler_c5334e9b7021.handlePageRender(Unknown >> >> Source) >> >> >> at $ComponentRequestHandler_c5334e9b6fe8.handlePageRender(Unknown >> >> Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) >> >> >> at $Dispatcher_c5334e9b6feb.dispatch(Unknown Source) >> >> >> at $Dispatcher_c5334e9b6fe2.dispatch(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) >> >> >> at $RequestHandler_c5334e9b6fe4.service(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) >> >> >> at $RequestHandler_c5334e9b6fe4.service(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) >> >> >> at $RequestHandler_c5334e9b6fe4.service(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) >> >> >> at $RequestHandler_c5334e9b6fe4.service(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.test.EndOfRequestCleanupFilter.service(EndOfRequestCleanupFilter.java:42) >> >> >> at $RequestHandler_c5334e9b6fe4.service(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) >> >> >> at $RequestHandler_c5334e9b6fe4.service(Unknown Source) >> >> >> at $RequestHandler_c5334e9b6fd3.service(Unknown Source) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.test.PageTester.renderPageAndReturnResponse(PageTester.java:205) >> >> >> at >> org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:176) >> >> >> at >> >> >> >> >> >> com.bignibou.web.pages.ChildminderRegistrationTest.test(ChildminderRegistrationTest.java:22) >> >> >> 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.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) >> >> >> at >> >> >> >> >> >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >> >> >> at >> >> >> >> >> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) >> >> >> at >> >> >> >> >> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) >> >> >> at >> >> >> >> >> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) >> >> >> at >> >> >> >> >> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) >> >> >> Caused by: java.lang.RuntimeException: Unable to inject component >> into >> >> >> field accountEmailAddressField of class >> >> >> com.bignibou.web.pages.account.ChildminderRegistration: Component >> >> >> account/ChildminderRegistration does not contain embedded component >> >> >> 'accountEmailAddress'. >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.transform.InjectComponentWorker$InjectedComponentFieldValueConduit.load(InjectComponentWorker.java:71) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.transform.InjectComponentWorker$InjectedComponentFieldValueConduit.access$000(InjectComponentWorker.java:36) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.transform.InjectComponentWorker$InjectedComponentFieldValueConduit$1.containingPageDidLoad(InjectComponentWorker.java:57) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.structure.PageImpl.loaded(PageImpl.java:186) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:193) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:178) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) >> >> >> ... 63 more >> >> >> Caused by: org.apache.tapestry5.ioc.util.UnknownValueException: >> >> Component >> >> >> account/ChildminderRegistration does not contain embedded component >> >> >> 'accountEmailAddress'. >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.getEmbeddedElement(ComponentPageElementImpl.java:860) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.getEmbeddedComponent(InternalComponentResourcesImpl.java:186) >> >> >> at >> >> >> >> >> >> org.apache.tapestry5.internal.transform.InjectComponentWorker$InjectedComponentFieldValueConduit.load(InjectComponentWorker.java:68) >> >> >> ... 69 more >> >> >> >> >> >> >> >> >> The field does exist in the form and it it the first one occurring >> in >> >> the >> >> >> form. >> >> >> >> >> >> Can anyone please help? >> >> >> >> >> >> Regards, >> >> >> >> >> >> Julien Martin. >> >> >> >> >> >> >> >> >> >> >> -- >> >> Jonathan Barker >> >> ITStrategic >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> >> >> >> >> >> >> -- >> Jonathan Barker >> ITStrategic >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> > -- Jonathan Barker ITStrategic