2011-08-25 14 views
5

मैं एक नया Vaadin (6.6.5) ग्रहण में परियोजना बना लिया है देता है और मैं JBoss 7.0 पर तैनात करने के लिए कोशिश की है, लेकिन यह मेरे लिए एक GWT ClassNotFoundExceptionतैनात JBoss 7.0 vaadin मुझे एक ClassNotFoundException

Caused by: java.lang.ClassNotFoundException: com.google.gwt.user.client.ui.HasWidgets from [Module "deployment.test.war:main" from Service Module Loader] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:358) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:330) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:330) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:307) 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:101) 
    ... 64 more 
देता है

क्या मुझे gwt पुस्तकालयों को तैनात करने के लिए कुछ अतिरिक्त करने की आवश्यकता है?

+0

वर्क्स देखते हैं जब gwt-dev.jar जोड़ने, gwt-user.jar, मान्यता-api-1.0.0.GA.jar वेब को मैन्युअल रूप से -INF \ lib निर्देशिका। ऐसा ग्रहण करने के लिए ग्रहण प्लगइन का इरादा प्रतीत नहीं होता है, तो बेहतर समाधान होना चाहिए? –

उत्तर

5

लगता है कि gwt-user.jar में कुछ जीडब्ल्यूटी कक्षाएं वैडिन क्लाइंट साइड विजेटसेट को संकलित करने के लिए जरूरी हैं जो जेबीएसएस 7 द्वारा अनावश्यक रूप से लोड की जाती हैं।

vaadin.jar में gwt-user.jar के संदर्भ शामिल हैं लेकिन रनटाइम के दौरान यह आवश्यक नहीं है, केवल विजेटसेट संकलन समय के दौरान। फिर भी जेबॉस इन वर्गों को समस्या पैदा करने के लिए लोड करना चाहता है।

इस के लिए JBoss में एक बग रिपोर्ट नहीं है: http://community.jboss.org/thread/169575?tstart=0

वहाँ उल्लेख किया है, वैकल्पिक हल वेब-INF/lib vaadin.jar साथ फ़ोल्डर में तैनाती पैकेज के लिए gwt-user.jar शामिल करने के लिए है, लगता है काम।

+0

यह भी देखें: टिकट http://dev.vaadin.com/ticket/7822 –

1

वाडिन ग्रहण प्लगइन जीआरटी फाइलों के लिए लाइब्रेरी निर्भरता बनाता है और आम तौर पर ग्रहण करते समय ग्रहण को रनटाइम क्लासपाथ का ख्याल रखना चाहिए।

पैकेज नाम com.google.gwt.user.client सुझाव है कि यह gwt-user.jar में होना चाहिए।

जीडब्ल्यूटी के साथ क्लाइंट-साइड कोड संकलित करते समय gwt-dev.jar की आवश्यकता होनी चाहिए।

क्या आप एड-ऑन का उपयोग कर रहे हैं? ऐड-ऑन (और उनकी निर्भरता) को हमेशा वेब-आईएनएफ/lib में जोड़ा जाना चाहिए ताकि सर्वर-साइड क्लासेस को एप्लिकेशन और क्लाइंट-साइड कोड जीडब्ल्यूटी कंपाइलर को उपलब्ध कराया जा सके।

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

1

यह सुनिश्चित करने के लिए कि आप इस कोड से अपने com.google.gwt। ** क्लास को गलती से एक्सेस नहीं करते हैं, अपना कोड जांचें। जैसा ऊपर बताया गया है, सर्वर में gwt पुस्तकालयों को तैनात करने की कोई आवश्यकता नहीं है।

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