2013-08-22 4 views
7

मैं एक नमस्ते विश्व विकेट आवेदनजावा/विकेट: संसाधन के साथ बेसिक नमस्ते विश्व संकलित

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

विशेष रूप से मैं HelloWorld.java के बगल में मेरे स्रोत निर्देशिका में 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 

हालांकि जब मैं एक युद्ध फ़ाइल को यह संकलन, और जेट्टी में लोड, मैं इस त्रुटि मिल जाए, तो ब्राउज़र में:

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) 

जब मैं युद्ध फ़ाइल में देखता हूं, मुझे लगता है कि एचटीएमएल फाइल गायब है:

$ 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 

मैं अपने पीओएम फाइल में कैसे निर्दिष्ट करूं ई एचटीएमएल फाइल शामिल करने के लिए?

मेरे पोम अभी कम है:

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

क्यों न केवल http://wicket.apache.org/start/quickstart.html से उपलब्ध क्विकस्टार्ट जेनरेटर का उपयोग करें? फिर आप एक कामकाजी आवेदन से एक पेस्ट दूर हैं। कम से कम आप pom.xml को पंप.एक्सएमएल के साथ त्वरित शुरुआत से अलग कर सकते हैं जिसे आपने तैयार किया है। –

+0

धन्यवाद, जैसा कि आपने उल्लेख किया है, मुझे समाधान मिला है। नीचे पोस्ट किया गया। –

उत्तर

17

समाधान में शामिल किया जाएगा, यदि आप विकेट में अपना एचटीएमएल सर्वोत्तम अभ्यास स्थान (अपनी कक्षाओं के साथ) चाहते हैं तो यह आपके पोम के निर्माण खंड में जोड़ना है।

<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

अच्छी व्याख्या। आपने 'src/main/resource' के लिए फ़िल्टरिंग को निष्क्रिय क्यों किया? – JimHawkins

1

आप src/main/webapp फ़ोल्डर में आप HelloWorld.html फ़ाइल रखना चाहिए। इस तरह इसे युद्ध फ़ाइल

+0

स्वीकार करने के लिए, क्या आप पथ के बारे में अधिक विशिष्ट हो सकते हैं? –

+0

उत्तर – WeMakeSoftware

+0

अपडेट किया गया कोई संदेह नहीं है कि यह काम करेगा लेकिन डेविड विलियम्स का जवाब बेहतर है क्योंकि यह विकेट सर्वोत्तम प्रथाओं का पालन करता है। – iluwatar

संबंधित मुद्दे