Java / Wicket:使用Resources编译Basic Hello World [英] Java/Wicket: Compile Basic Hello World with Resources

查看:100
本文介绍了Java / Wicket:使用Resources编译Basic Hello World的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am following this example of a Hello World Wicket application

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

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

In particular I placed HelloWorld.html in my source directory next to HelloWorld.java.

我的文件结构如下所示:

My file structure looks like this:

$ 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中加载时,我在浏览器中收到此错误:

However when I compile this to a war file, and load in Jetty, i recieve this error, in the browser:

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文件丢失了:

When I look in the war file I notice that the html file is missing:

$ 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文件?

How do I specify in my POM file to include the html file?

我的POM现在是最小的:

My POM right now is minimal:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>wicketTest</groupId>
    <artifactId>wicketTest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-core</artifactId>
            <version>6.10.0</version>
        </dependency>
    </dependencies>
</project>


推荐答案

解决方案,如果你想要你的wicket中的HTML最佳实践场所(与您的课程)是将其添加到您的pom的构建部分。

The solution, if you want your HTML in the wicket best practice place (with your classes) is to add this to the build section of your pom.

<build>
    <resources>
        <resource>
            <filtering>false</filtering>
            <directory>src/main/resources</directory>
        </resource>
        <resource>
            <filtering>false</filtering>
            <directory>src/main/java</directory>
            <includes>
                <include>**</include>
            </includes>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>
</build>
</project>

这篇关于Java / Wicket:使用Resources编译Basic Hello World的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆