2012-10-02 18 views
5

में बाहरी जावा स्रोत डालने के लिए मेरे पास एक ईएनएम है जिसका उपयोग सर्वर-साइड पर किया जाता है। मैं इस पक्ष का उपयोग क्लाइंट साइड (जीडब्ल्यूटी) पर भी करने के लिए करना चाहता हूं।जीडब्ल्यूटी परियोजना

se.mycompany.core 
se.mycompany.core.TheEnum <-- this Enum. 

se.mycomapny.web.gwtproject <-- The GWT project. 
se.mycomapny.web.gwtproject.client 

मैं अपने gwtproject.gwt.xml फाइल करने के लिए

<inherits name="se.mycompany.core.TheEnum"/> 

जोड़ने की कोशिश की है:

यह संरचना है। लेकिन मुझे निम्न त्रुटि संदेश मिलता है:

[ERROR] आपके क्लासपाथ पर 'se/mycompany/core/TheEnum.gwt.xml' ढूंढने में असमर्थ; एक टाइपो हो सकता है, या हो सकता है कि आप स्रोत के लिए क्लासपाथ एंट्री शामिल करना भूल गए?

मैंने निम्नलिखित संदर्भ के साथ TheEnum.gwt.xml फ़ाइल को 'se/mycompany/core /' में जोड़ने का प्रयास किया है।

<module> 
    <inherits name='com.google.gwt.user.User'/> 
    <source path="TheEnum"></source> 
</module> 

लेकिन यह अभी भी एक ही चीज़ के बारे में शिकायत करता है।

मुझे लगता है कि मुझे se.mycompany.core जोड़ने की आवश्यकता है। Build.xml में classpath को किसी भी तरह से, लेकिन मुझे नहीं पता कि कैसे या कहाँ।

उत्तर

6

"विरासत" टैग का उपयोग अन्य मॉड्यूल आयात करने के लिए किया जाता है, व्यक्तिगत वर्ग नहीं। आप प्राप्त कर सकते थे core पैकेज के अंतर्गत एक सरल GWT मॉड्यूल बनाने के द्वारा आप क्या चाहते हैं, और उसके बाद मौजूदा एक में है कि मॉड्यूल के वारिस:

पैकेज se.mycompany.core तहत Core.gwt.xml नामक एक फ़ाइल में निम्न सामग्री के साथ बनाएँ:

<?xml version="1.0" encoding="UTF-8"?> 
<module> 
    <source path="" includes="TheEnum.java"/>  
</module> 
अपने मौजूदा मॉड्यूल में

फिर जोड़ने:

<inherits name='se.mycompany.core.Core'/> 
+0

फिर भी हो रही है "खोजने के लिए 'से/mycompany/कोर/Core.gwt.xml' अपने classpath पर असमर्थ; लिखने में कोई त्रुटि हो सकता है, या हो सकता है आप भूल गए स्रोत के लिए क्लासपाथ प्रविष्टि शामिल करने के लिए? " – brange

+0

अपने फ़ाइल पथ और पैकेज नामों को दो बार जांचें। मैंने कई बार एक समान सेटअप का उपयोग किया है और यह मेरे लिए काम करता है। –

+0

यदि आप अपने * .gwt.xml फ़ाइल को मैवेन का उपयोग करके एक जार में संकलित कर रहे हैं, तो आप अपने जार को एक्सएमएल फाइल गायब कर सकते हैं। फिक्स के लिए निम्न थ्रेड देखें: https://stackoverflow.com/questions/9798955/with-maven-clean-package-xml-source-files-are-not-included-in-classpath – Jake88

0

बेहतर यानी, "se.mycomapny.web.gwtproject.client" ग्राहक पैकेज में enum जोड़ने के लिए,। और सर्वर पक्ष से आप क्लाइंट पैकेज से इस enum का उपयोग कर सकते हैं।

फिर भी आप इसे केवल सर्वर पक्ष पर चाहते हैं, तो "se.mycompany.core.shared" पैकेज बनाएं, "se.mycompany.core" पैकेज में Core.gwt.xml बनाएं।

Core.gwt.xml:

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

अब पैकेज "se.mycompany.core.shared" में TheEnum.java पैदा करते हैं। और रेखा के नीचे अपने मुख्य gwt.xml फ़ाइल लिखने में

<inherits name='se.mycompany.core.Core'/> 
संबंधित मुद्दे