2009-11-21 16 views
7

मेरे पास है: ubuntu-9.10-desktop-amd64 + NetBeans6.7.1अपाचे HttpClient फेंकता एक NoClassDefFoundError

  1. मैं सिर्फ डाउनलोड की गई "कॉमन्स HttpClient 3.1 (विरासत)" http://hc.apache.org/downloads.cgi से।
  2. मैंने आईडीई नेटबीन के साथ नया एप्लीकेशन बनाया है। > पुस्तकालय - -> जोड़ें जार/फ़ोल्डर और यहाँ जोड़ा कॉमन्स-httpclient-3.1.jar
  3. अब तक, मैं लिख सकते हैं
  4. मैं पर परियोजनाओं ध्यान केंद्रित "आयात org.apache.commons.httpclient *;।" यह ठीक है।

    public static void main(String[] args) { 
        HttpClient client = new HttpClient(); 
    } 
    
  5. यह अच्छी तरह से संकलित किया गया है:

  6. लेकिन, अगर मैं किसी भी बयान को जोड़ने का प्रयास कुछ इस तरह शामिल थे।

  7. लेकिन जब मैं इस परियोजना चलाने के लिए, मैं निम्नलिखित त्रुटियों का सामना करना:

    ***Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
        at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66) 
        at SimplestAppl.Main.main(Main.java:22) 
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
        at java.security.AccessController.doPrivileged(Native Method) 
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:319) 
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:264) 
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332) 
        ... 2 more 
    Java Result: 1*** 
    

क्या गलत है?

मैंने "HttpClient 4.0 (GA)" डाउनलोड करने का प्रयास किया। लेकिन परिणाम वही था।

+0

आपको कॉमन्स-लॉगिंग के लिए लाइब्रेरी जोड़ने की आवश्यकता है। यदि आप इस बारे में उलझन में हैं कि यह कैसे करें: http://stackoverflow.com/questions/5893349/how-to-add-library-files-in-netbeans –

उत्तर

14

जो आप अनुभव कर रहे हैं वह सिर्फ एक लापता निर्भरता है। जावा डेवलपर्स का उपयोग अपनी निर्भरताओं को स्वयं इकट्ठा करने के लिए किया जाता है, esp। जब फ्रेमवर्क लॉगिंग की बात आती है। कॉमन्स-लॉगिंग डाउनलोड करें और इसे अपने क्लासपाथ में जोड़ें। Httpclient द्वारा आवश्यक सभी अन्य निर्भरताओं के साथ-साथ करें।

+0

इसके अलावा, सुनिश्चित करें कि आप/Project/WebContent/WEB का उपयोग कर रहे हैं -INF/lib / – tricknology

5

आपको निर्भरताओं की आवश्यकता है। यदि आप मेवेन का इस्तेमाल करते हैं, तो वे खुद को लाएंगे। चूंकि आप नहीं हैं, आपको कॉमन्स-लॉगिंग (और शायद अन्य) डाउनलोड करना होगा और उन्हें टॉस करना होगा।

1

आप Maven उपयोग करना चाहते हैं न, तो

- build and launch, look at missing dependencies 
- identify vendor, fetch the jar to resolve dependencies 
- rinse/repeat until you have all dependencies satisfied 
- done 

वैसे भी आप यकीन है कि अगर सभी निर्भरता 100% आपूर्ति की जाती है कभी नहीं होगा। यह आमतौर पर लगभग 150% या 99% है, लेकिन

2

के बीच कभी भी नहीं, मैं इस तथ्य के लिए यहां आने वाले किसी भी व्यक्ति को अपडेट करना चाहता हूं कि सभी उत्तरों, और विशेष रूप से रॉकेट सर्जन ने मुझे मेरी समस्या को उसी अर्थ में हल करने में मदद की। मेरे मुद्दों को हल करने से पहले मुझे कॉमन्स httpclient (विरासत 3.1), लॉगिंग और कोडेक डाउनलोड करना पड़ा।

नोट भी; ग्रहण का उपयोग करके मुझे .jar-files निकालना था और उन्हें "लाइब्रेरी जोड़ें" का उपयोग करके बिल्डपैथ में आयात करना था। केवल .zip-file जोड़ने के साथ काम नहीं किया।

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