2013-07-31 10 views
13

ABSTRMethodError के संभावित कारण क्या हैं?मुझे java.lang.AbstractMethod त्रुटि त्रुटियां क्यों मिल रही हैं?

सूत्र में अपवाद "पूल-1-धागा -1" java.lang.AbstractMethodError:

org.apache.thrift.ProcessFunction.isOneway()Z 
    at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:51) 
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) 
    at com.gemfire.gemstone.thrift.hbase.ThreadPoolServer$ClientConnnection.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
+0

हमें कुछ संदर्भ दे दो, तुम क्या करने की कोशिश कर रहे हैं? कुछ संस्करण मुद्दा हो सकता है! जिस विधि को आप आमंत्रित करते हैं या कुछ अन्य कोड आवेदक अब एक अमूर्त विधि में परिवर्तित हो जाते हैं। – NINCOMPOOP

+0

मैं hbase बहाव संस्करण की कोशिश कर रहा था। मैं थ्रिफ्ट कंपाइलर और उत्पन्न थ्रिफ्ट फाइलें बनाते हैं। और एमवीएन बिल्डिंग मेरे प्रोजेक्ट का उपयोग करके जो अपाचे थ्रिफ्ट जार के 0.9.0 संस्करण को भी डाउनलोड कर रहा है। यह वही है जिसका मैं उपयोग कर रहा हूं। – Avinash

उत्तर

6

सरल उत्तर यह है: कुछ कोड एक तरीका है जिसके abstract घोषित किया जाता है कॉल करने के लिए कोशिश कर रहा है। सार विधियों में कोई शरीर नहीं है और इसे निष्पादित नहीं किया जा सकता है। आप इतने कम जानकारी मैं वास्तव में यह कैसे हो सकता है, क्योंकि संकलक आमतौर पर इस समस्या को कैच के बारे में अधिक विस्तार से बता नहीं कर सकते हैं प्रदान की है के बाद से - as described here, this means the class must have changed at runtime.

+0

हाँ, विधि सार के रूप में परिभाषित किया गया है, लेकिन मैं ग्रहण माध्यम से पता लगाया और मैं देख रहा हूँ तरीकों बच्चे कक्षाओं – Avinash

+0

ज़रूर में लागू किया जाता है, लेकिन इसका मतलब है कि आप एक विशिष्ट बच्चे वर्ग कार्यान्वयन कॉल करनी होगी। आप अभी भी विधि को कॉल नहीं कर सकते हैं। – jazzbassrob

+0

मैं फिर से जाँच की, अपाचे बचत उत्पन्न कोड बुला रहा है बच्चे वस्तु विशिष्ट कार्यान्वयन – Avinash

1

AbstractMethodError

Thrown when an application tries to call an abstract method. Normally, this error is caught by the compiler; this error can only occur at run time if the definition of some class has incompatibly changed since the currently executing method was last compiled.

27

की documnentation से यह आमतौर पर मतलब है कि आप प्रयोग कर रहे हैं इंटरफ़ेस कार्यान्वयन का एक पुराना संस्करण जिसमें एक नई इंटरफ़ेस विधि अनुपलब्ध है। उदाहरण के लिए java.sql.Connection इंटरफ़ेस को 1.7 में एक नया getSchema विधि मिली है। यदि आपके पास 1.6 जेडीबीसी ड्राइवर है और कनेक्शन कनेक्शन करें .getSchema आपको AbstractMethodError मिलेगा।

+2

अच्छा, आपने मुझे "इंटरफेस के पुराने संस्करण" पर रखा था – mtyson

0

आप आप लागू किया तरीकों पर इस त्रुटि हो रही है, तो सुनिश्चित करें के रूप में this thread में उल्लेख किया है आपने अपनी निर्भरता को शामिल किया है बनाते हैं।

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