2012-06-13 15 views
10

0 के लिए एडब्ल्यूएस एसडीके का उपयोग कर प्रोग्राम चलाते समय NoClassDefFoundError जावा के लिए एडब्ल्यूएस एसडीके के साथ आने वाले डायनेमोडीबी नमूने को चलाने की कोशिश कर रहा हूं। मैं ग्रहण का उपयोग कर इसे कर रहा हूं, और परियोजना के निर्माण पथ में aws-java-sdk-1.3.2.jar फ़ाइल को जोड़ा। पाठ्यक्रम का संकलन ठीक हो जाता है, लेकिन मुझे NoClassDefFoundError नामक रनटाइम अपवाद मिल रहा है। मुझे पता है इसका मतलब है कि कक्षा संकलन में थी लेकिन रनटाइम पर नहीं मिल सका। मैंने एनआर वैरिएबल में जार फ़ाइल जोड़ने की कोशिश की - मदद नहीं की। मैंने भी जांच की और अन्य परियोजनाओं पर अन्य बाहरी जार फ़ाइलों का उपयोग करने में कोई समस्या नहीं है। विंडोज़ और लिनक्स दोनों पर एक ही समस्या है।जावा क्लाउड

किसी की भी मदद करें?

धन्यवाद, बेन। गैर एडब्ल्यूएस आइटम (आपके मामले के प्रवेश में की तरह)

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
    at com.amazonaws.services.dynamodb.AmazonDynamoDBClient.<clinit>(AmazonDynamoDBClient.java:62) 
    at AmazonDynamoDBSample.init(AmazonDynamoDBSample.java:62) 
    at AmazonDynamoDBSample.main(AmazonDynamoDBSample.java:67) 
+0

कृपया अपना स्टैक ट्रेस पोस्ट करें? –

+1

क्या आपके पास अपाचे कॉमन्स लाइब्रेरी जार फ़ाइल है? यह यहां पाया जा सकता है: http://commons.apache.org/logging/download_logging.cgi –

+1

हां, कोडेक और HTTP क्लाइंट भी। सभी बिल्ड पथ –

उत्तर

1

ऐसा लगता है कि आपके AWS JAR कुछ अतिरिक्त जार इस्तेमाल किया लागू करने के लिए की जरूरत है की तरह है, लेकिन:

स्टैक ट्रेस।

यदि आपने एक वितरण योग्य डाउनलोड किया है जिसमें "lib" निर्देशिका है, तो बाधाएं आप केवल एडब्ल्यूएस सहित सभी आवश्यक जारों के बजाय एडब्ल्यूएस जार का उपयोग करने के लिए एक्लिप्स को कॉन्फ़िगर कर चुके हैं, और शायद "lib" निर्देशिका में सभी JARs।

+0

lib में aws-java-sdk-1.3.2-sources.jar और aws-java-sdk-1.3.2-javadoc.jar था। वे सही नहीं हैं? मुझे तीसरे पक्ष नामक एक निर्देशिका भी मिली, इसमें एक कॉमन्स-लॉगिंग-1.1.1.जर शामिल था और यह भी निर्माण पथ में है ... –

+0

आप यह अनुमान लगाने में सही हैं कि स्रोत और जावडोक जार आपको जो चाहिए जोड़ने के लिए। तृतीय-पक्ष कॉमन्स-लॉगिंग-1.1.1.jar फ़ाइल में आपके द्वारा खोजी जाने वाली लापता कक्षा शामिल है। एक तरफ के रूप में, आप AWS लाइब्रेरी को "स्रोत शामिल करें" में कॉन्फ़िगर कर सकते हैं और फिर "स्रोत" JAR फ़ाइल को हुक अप कर सकते हैं यदि आप aws लाइब्रेरी में डीबग करना चाहते हैं। –

+0

कॉमन्स-लॉगिंग-1.1.1.jar पहले से ही बिल्ड पथ के अंदर है। मुझे जार के अंदर मैन्युअल रूप से org/apache/commons/logging/logFactory.class भी मिला। क्या आप किसी भी कारण से सोच सकते हैं कि JVM इसे क्यों नहीं ढूंढ पाएगा? –

12
आप " तीसरे पक्ष के" नाम किसी अन्य फ़ोल्डर मिलेगा एडब्ल्यूएस-जावा-sdk-1.3.2 फ़ोल्डर के अंदर

। अमेज़ॅन एसडीके द्वारा उपयोग की जाने वाली सभी तृतीय-पक्ष फ़ाइलें अपाचे कॉमन लॉगिंग समेत उस फ़ोल्डर के अंदर हैं। आपको एडब्ल्यूएस एसडीके जार फ़ाइलों के साथ अपने क्लासपाथ में आवश्यक फाइलें जोड़नी होंगी।

+0

क्या आप उस जादू "तीसरे पक्ष" के लिए एक वेब लिंक प्रदान कर सकते हैं? जार निर्भरता में ऐसा कोई फ़ोल्डर नहीं है। – Cherry

+1

ओमजी ... मैं इस सटीक समस्या को लंबे समय तक चल रहा हूं ... थर्ड पार्टी लाइब्रेरीज़ ... एक बेटा ... – WernerCD

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