2009-01-13 16 views
10

में जावा पैकेज जोड़ना मैंने खोज करने की कोशिश की है लेकिन जीडब्ल्यूटी परियोजना में अपने स्वयं के पैकेज जोड़ने के तरीके के बारे में परिभाषित तरीके से नहीं आ सकता है।जीडब्ल्यूटी

मेरे वृक्ष संरचना इस तरह दिखता है:

-com.mycompany 
    -public 
    MyApplication.html 
    MyApplication.gwt.xml 


-com.mycompany.client 
    MyApp.java 

-com.mycompany.gui 
    TableLayout.java 

जवाब मैं वहाँ देखा है संकुल gwt.xml फ़ाइल के रूट निर्देशिका के सापेक्ष जोड़ने के लिए है, इसलिए की तरह कहते हैं:

<module> 
    <inherits name="com.google.gwt.user.User" /> 
    <entry-point class="com.mycompany.client.MyApp" /> 
    <source path="client" /> 
    <source path="gui" /> 
</module> 

यह तो शिकायत:

Unable to find type 'com.technicon.client.MyApp' 
    Hint: Previous compiler errors may have made this type unavailable 
    Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly 

किसी को भी मुझे बता सकते हैं मैं गलत क्या कर रहा है और कैसे इसे ठीक करने के लिए?

उत्तर

5

आप दो स्रोत पथ रेखाओं से छुटकारा पा सकते हैं, क्योंकि डिफ़ॉल्ट रूप से जीडब्ल्यूटी रूट से संबंधित कुछ भी उठाएगा, और आपके जैसे क्लाइंट पैकेज में होगा। तुम भी अपने ग्राहक पैकेज में अपने GUI पैकेज बढ़ने की जरूरत है, तो यह हो जाएगा:

अपने MyApp.java
-com.mycompany 
    -public 
    MyApplication.html 
    MyApplication.gwt.xml 


-com.mycompany.client 
    MyApp.java 

-com.mycompany.client.gui 
    TableLayout.java 


<module> 
    <inherits name="com.google.gwt.user.User" /> 
    <entry-point class="com.mycompany.client.MyApp" /> 
</module> 

मान लिया जाये कि एक वास्तविक EntryPoint है, तो यह ठीक काम करना चाहिए।

ध्यान देने योग्य एक और बात यह है कि आप जावा कक्षाओं का उपयोग नहीं कर सकते हैं जो जीडब्ल्यूटी जेआरई इम्यूलेशन लाइब्रेरी का हिस्सा नहीं हैं, और यदि आप ऐसा करते हैं तो आपकी परियोजना संकलित नहीं होगी। हालांकि आपको इसके बारे में बहुत विशिष्ट त्रुटियां मिलनी चाहिए। उदाहरण के लिए यदि आप नकली नहीं हैं, तो आप java.math.bigDecimal जैसे लाइब्रेरी क्लासेस का उपयोग नहीं कर सकते हैं। आपके द्वारा बनाए गए अपने सभी वर्गों का उपयोग हालांकि किया जा सकता है।

9

भले ही @rustyshelf ने इंगित किया है, gwt client.* के तहत स्वचालित रूप से सबकुछ परिवर्तित कर देगा, ऐसे समय होंगे जब आप अपने क्लाइंट पैकेज के बाहर चीजें रखना चाहेंगे (उन्हें कई परियोजनाओं में पुन: उपयोग करना उनमें से एक हो सकता है) और इसके लिए समाधान source तत्व का उपयोग कर प्रक्रिया में अन्य पैकेज जोड़ने में अभी भी रहता है।

अब एक चाल है, आपको यह तय करना होगा कि क्या आप gwt.xml कॉन्फ़िगरेशन फ़ाइल को स्थानांतरित करना चाहते हैं या फिर आपको एक नया निर्माण करने की आवश्यकता है या नहीं।

विशेष रूप से आपके मामले के लिए (जहां दोनों पैकेज पैकेज में रूट रूट करते हैं, com.mycompany) आप केवल <project_name>.gwt.xml फ़ाइल को शीर्ष सामान्य पैकेज में ले जा सकते हैं और केवल स्रोत के रूप में नया पैकेज जोड़ सकते हैं (और वहाँ <source path="client"/> रूप में अच्छी तरह) इस प्रकार की तरह लग रहे करने के लिए अपनी फ़ाइल बनाने: दूसरी ओर

<source path="client"/> 
<source path="gui"/> 

संकुल किसी भी जड़ का हिस्सा नहीं है, सिर्फ एक मात्र स्रोत तत्वों के साथ एक नया *.gwt.xml फ़ाइल बनाने और एक पर रखें उप-पैकेज में पैरेंट पैकेज जिसे आप जोड़ना चाहते हैं, यानी:

<module> 
    <source path=""/> 
</module> 

टिप्पणी ऐसे ही "admin/client" इस सहायता में

आशा आप ट्रैक पर वापस आने के लिए और अपने कोड का सबसे अच्छा तरीका संभव व्यवस्थित एक / के साथ उन्हें अलग करके ऐसा करने के लिए यदि आप नेस्ट उप संकुल के संकलन-पहुँच प्रदान करने की जरूरत है।