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文件中