-1

私の最初の Wicket プロジェクト (Eclipse mars と Glassfish 4.1 を使用して Wicket 6.20 で開発) では、Quickstart Maven アーキタイプに基づいて、 getResourceSettings().getResourceFinders().add(new WebApplicationPath(getServletContext(), "html"));コードからマークアップを分離するために使用しています。

ホームページは正常に動作しますが、WicketTester が例外をスローしますorg.apache.wicket.markup.MarkupNotFoundException: Can not determine Markup. Component is not yet connected to a parent. [Page class = ...MyProject.HomePage, id = 0, render count = 1]

この問題は、文献のどこにも取り組まれていないようです。

4

1 に答える 1

2

何時間にもわたって徹底的なデバッグ セッションを行った結果、 MockServletContextの JavaDoc にたどり着きました。このドキュメントでは、デフォルト以外のリソース ロケーションが使用されている場合は、ディスク上のアプリケーションのルートへの絶対パスを指定する必要があると説明されています。

さらに、このパスは WicketTester のコンストラクターの 2 番目の引数として指定できることがわかりました。

したがって、私のテスト Setup() メソッドは次のように終了します。

return new WicketTester(new WicketApplication(),"<path to Eclipse workspace>/MyProject/src/main/webapp");
于 2015-08-13T20:50:34.800 に答える