Java / Wicket:使用Resources编译Basic Hello World

我正在关注Hello World Wicket应用程序的这个示例

https://www.ibm.com/developerworks/web/library/wa-aj-wicket/

特别是我将HelloWorld.html放在HelloWorld.html旁边的源目录中。

我的文件结构如下所示:

 $ tree . ├── pom.xml ├── src │  ├── main │  │  ├── java │  │  │  └── com │  │  │  └── example │  │  │  └── wicket │  │  │  ├── HelloWorld.html │  │  │  ├── HelloWorld.java │  │  │  └── HelloWorldApplication.java │  │  ├── resources │  │  └── webapp │  │  └── WEB-INF │  │  └── web.xml │  └── test │  └── java └── wicketTest.iml 

但是,当我将其编译为war文件,并在Jetty中加载时,我在浏览器中收到此错误:

 Unexpected RuntimeException Last cause: Can not determine Markup. Component is not yet connected to a parent. [Page class = com.example.wicket.HelloWorld, id = 4, render count = 1] Stacktrace Root cause: org.apache.wicket.markup.MarkupNotFoundException: Can not determine Markup. Component is not yet connected to a parent. [Page class = com.example.wicket.HelloWorld, id = 4, render count = 1] at org.apache.wicket.Component.getMarkup(Component.java:737) at org.apache.wicket.Component.internalRender(Component.java:2344) at org.apache.wicket.Component.render(Component.java:2307) at org.apache.wicket.Page.renderPage(Page.java:1010) 

当我查看war文件时,我注意到html文件丢失了:

 $ tar tvf target/wicketTest-1.0-SNAPSHOT.war drwxrwxrwx 0 0 0 0 Aug 22 14:50 META-INF/ -rwxrwxrwx 0 0 0 128 Aug 22 14:50 META-INF/MANIFEST.MF drwxrwxrwx 0 0 0 0 Aug 22 14:50 WEB-INF/ drwxrwxrwx 0 0 0 0 Aug 22 14:50 WEB-INF/classes/ drwxrwxrwx 0 0 0 0 Aug 22 14:50 WEB-INF/classes/com/ drwxrwxrwx 0 0 0 0 Aug 22 14:50 WEB-INF/classes/com/example/ drwxrwxrwx 0 0 0 0 Aug 22 14:50 WEB-INF/classes/com/example/wicket/ drwxrwxrwx 0 0 0 0 Aug 22 14:50 WEB-INF/lib/ -rwxrwxrwx 0 0 0 608 Aug 22 14:50 WEB-INF/classes/com/example/wicket/HelloWorld.class -rwxrwxrwx 0 0 0 551 Aug 22 14:50 WEB-INF/classes/com/example/wicket/HelloWorldApplication.class -rwxrwxrwx 0 0 0 25962 Aug 21 16:07 WEB-INF/lib/slf4j-api-1.6.4.jar -rwxrwxrwx 0 0 0 2126440 Aug 21 16:07 WEB-INF/lib/wicket-core-6.10.0.jar -rwxrwxrwx 0 0 0 86671 Aug 21 16:07 WEB-INF/lib/wicket-request-6.10.0.jar -rwxrwxrwx 0 0 0 415858 Aug 21 16:07 WEB-INF/lib/wicket-util-6.10.0.jar -rwxrwxrwx 0 0 0 690 Aug 22 13:22 WEB-INF/web.xml drwxrwxrwx 0 0 0 0 Aug 22 14:50 META-INF/maven/ drwxrwxrwx 0 0 0 0 Aug 22 14:50 META-INF/maven/wicketTest/ drwxrwxrwx 0 0 0 0 Aug 22 14:50 META-INF/maven/wicketTest/wicketTest/ -rwxrwxrwx 0 0 0 675 Aug 22 08:52 META-INF/maven/wicketTest/wicketTest/pom.xml -rwxrwxrwx 0 0 0 112 Aug 22 14:50 META-INF/maven/wicketTest/wicketTest/pom.properties 

如何在我的POM文件中指定包含html文件?

我的POM现在很小:

   4.0.0 wicketTest wicketTest 1.0-SNAPSHOT war   org.apache.wicket wicket-core 6.10.0    

解决方案,如果您希望HTML在wicket最佳实践中(与您的类一起)是将其添加到您的pom的构建部分。

    false src/main/resources   false src/main/java  **   **/*.java      

你应该把HelloWorld.html文件放到src/main/webapp文件夹中。 这样它就会被包含在war文件中