2009-10-24 8 views
9

हाय मैं एक छोटा सा वेबपैप लगाने की कोशिश कर रहा हूं लेकिन मुझे त्रुटि से ऊपर मिल रहा है। नीचे मेरा कोडjava.lang.NoSuchMethodError: org.apache.http.protocol.BasicHttpContext: विधि <init>() वी नहीं मिला

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("SomeURL"); // Using a URL local to my machine 
// after setting nameValuePair and setting it on httppost 
httppost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 

// This is where I am getting the above mentioned exception 
HttpResponse response = httpclient.execute(httppost); 

मैं httpclient-4.0-beta2.jar और httpcore-4.0.1.jar का उपयोग कर रहा हूं। ऐसा लगता है कि BasicHttpContext मेरे ऐप में कुछ अन्य जारों के साथ संघर्ष कर रहा है, लेकिन मैं इसे समझ नहीं पाया। किसी भी सुराग की सराहना की जाएगी।

+0

यह क्लासपाथ सूचीबद्ध करने में आपकी सहायता कर सकता है जिसके साथ आप अपना कोड चला रहे हैं। इच्छित जार फ़ाइल को लोड करने से रोकने में एक सूक्ष्म समस्या हो सकती है ... – atk

+1

मैंने एक स्टैंडअलोन जावा प्रोग्राम के साथ प्रयास किया और केवल 2 जार जोड़े और यह ठीक काम करता है। मेरे मूल ऐप के क्लासपाथ में 50 से अधिक जार हैं, मुझे यकीन नहीं है कि कौन सा विरोधाभासी है। –

+1

यदि आप एक्लिप्स आईडीई गोटो जावा ब्रोस्विंग व्यू (विंडोज़ -> शो व्यू -> जावा ब्रॉसिंग) का उपयोग कर रहे हैं तो फिर जार फ़ाइल ब्राउजर करें, आप कक्षा/विधियों/चर आदि के विवरण के बारे में जान सकेंगे – Narayan

उत्तर

9

ऐसा लगता है कि आपके पास BasicHttpContext के पुराने/नए संस्करण के साथ एक जार फ़ाइल है। यदि कोई प्रत्यक्ष संघर्ष होता है, तो आपको ClassNotFoundException प्राप्त होगा। क्लासलोडर आमतौर पर इस तरह की चीज के बारे में झटके होते हैं। इस मामले में, कक्षा मौजूद है हालांकि इस विधि में कोई अन्य लाइब्रेरी नहीं है (मुझे विश्वास है कि यह httpclient है जो Context का आविष्कार कर रहा है) के खिलाफ संकलित किया गया था।

+0

हां ऐसा लगता है कि मेरा httpclient जेडीके 1.5 के लिए है और httpcore जेडीके 1.3 के लिए है। मैंने जेडीके 1.5 के लिए httpcore प्राप्त करने का प्रयास किया लेकिन कोई भी नहीं मिला और httpclient के निचले संस्करण का उपयोग करके कई और त्रुटियां फेंक गईं। –

+0

जब मैंने इस HttpContext localContext = new BasicHttpContext() जैसे निर्माता को कॉल करने का प्रयास किया; यह कहते हैं: - कोई मिलान प्रकार में निर्माता() के लिए मिला था org.apache.http.protocol.BasicHttpContext इसका निश्चित रूप से एक मौजूदा जार के साथ कोई विरोध है, मैं rootcause और तय की ओर inching कर रहा हूँ। –

+4

http://hc.apache.org/httpcomponents-core/httpcore/apidocs/org/apache/http/protocol/BasicHttpContext.html ऐसा लगता है कि आप httpcore 4.0 के साथ httpcore 4.0 को प्रतिस्थापित करते हैं तो आपको ठीक होना चाहिए। – Malaxeur

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