2013-08-22 17 views
7

Ben HelloWorld.java yanında benim kaynak dizininde HelloWorld.html yerleştirilen Özellikle bir Merhaba Dünya Wicket uygulamasıJava/Wicket:

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

bu örneğinde takip ediyorum Kaynaklar Temel Hello World derleyin. Bir savaş dosyasına bu derleme Ancak

$ 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 

ve İskelesi yük i tarayıcıda, bu hata alma:

Dosyam yapısı şöyle

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) 

zaman

$ 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 

benim POM fil belirtebilirim nasıl: Ben html dosyası eksik olduğunu fark savaş dosyasında bakmak e html dosyasını dahil etmek için?

Benim POM şu anda çok az şudur: src/main/webapp klasöre size HelloWorld.html dosya koymalıyız

<?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> 
+3

Neden http://wicket.apache.org/start/quickstart.html adresinde bulunan hızlı başlangıç ​​üretecini kullanmıyoruz? Daha sonra çalışan bir uygulamadan bir yapıştırın. En azından, hazırladığınız pom.xml ile hızlı başlangıçtan pom.xml'yi değiştirebilirsiniz. –

+0

Teşekkürler, bana bahsettiğin çözümü getirdin. Aşağıda gönderildi. –

cevap

17

çözüm dahil edilecektir.

<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> 
+0

iyi bir açıklama. "Src/main/resources" için filtrelemeyi neden devre dışı bıraktınız? – JimHawkins

1

. Eğer (sınıflarınızla) küçük kapı en iyi uygulama yerinde HTML'nizin pom oluşumunu bölümüne bu eklemektir istiyorsanız bu yolu, savaş dosyası

+0

Kabul etmek için, yol hakkında daha spesifik olabilir misiniz? –

+0

cevap verilmesi – WeMakeSoftware

+0

bu çalışacak Hiçbir şüphe güncellenmiş ama Wicket iyi uygulamaları takip beri David Williams cevap daha iyidir. – iluwatar