ChildPanel をページに追加すると、次のようなエラーが表示されます。
org.apache.wicket.WicketRuntimeException:
The component(s) below failed to render.
A common problem is that you have added a component in code
but forgot to reference it in the markup
(thus the component will never be rendered).
1. [Form [Component id = myForm]]
2. [DropDownChoice [Component id = referenceType]]
3. [TextField [Component id = referenceNumber]]
4. [CheckBox [Component id = referenceReqChk]]
5. [ [Component id = saveRefNumButton]]
6. [ [Component id = cancelRefNumButton]]
at org.apache.wicket.Page.checkRendering(Page.java:693)
at org.apache.wicket.Page.onAfterRender(Page.java:849)
at org.apache.wicket.markup.html.WebPage.onAfterRender(WebPage.java:213)
at org.apache.wicket.Component.afterRender(Component.java:950)
at org.apache.wicket.Component.render(Component.java:2298)
at org.apache.wicket.Page.renderPage(Page.java:1041)
at org.apache.wicket.request.handler.render.
WebPageRenderer.renderPage(WebPageRenderer.java:105)
問題のコンポーネントが、ChildPanel が拡張する AbstractParentPanel のマークアップに追加されていることがはっきりとわかります。奇妙なことに、AbstractParentPanel を非抽象クラスにすると、そのパネルを問題なく追加できます。
このエラーが発生するのはなぜですか?
注: この質問に対する答えは既に見つかりました。このような単純なチェックに必要以上の時間を無駄にしたので、他の人を助けるためにSOに追加しています。このメッセージに心を痛め、この回答が役に立った場合は、この JIRA チケットに投票することを検討してください