2012-03-09 18 views
34

के साथ असंगत है मैं एक स्प्रिंग/वाडिन/हाइबरनेट एप्लिकेशन विकसित कर रहा हूं।ग्रहण प्रकार का पदानुक्रम ... @ कॉन्फिगर करने योग्य एनोटेशन

सब कुछ काम करता है लेकिन मैं अभी भी ग्रहण एसटीएस 2.8.1 में निम्न त्रुटि मार्कर:

The hierarchy of the type BankView is inconsistent 
The hierarchy of the type AbstractEntityView is inconsistent 

मैं है मेरे विचार के लिए निम्नलिखित संरचना:

public class BankView extends AbstractEntityView { 
    @Resource private BankService bankService; 

    public void buildLayout() { 
     super.buildLayout(); 

     // Use of the service here 
    } 
} 

public abstract class AbstractEntityView extends AbstractView { 
    public void buildLayout() { 
     verticalLayout = new VerticalLayout(); 
     verticalLayout.setSpacing(true); 
     verticalLayout.setSizeFull(); 
     setContent(verticalLayout); 
     super.buildLayout(); 
    } 
} 

@Configurable(preConstruction = true) 
public abstract class AbstractView extends com.vaadin.ui.VerticalLayout { 
    public AbstractView() { 
     super(); 
     try { 
       buildLayout(); 
     } 
     catch (AccessDeniedException e) { // Spring Security 
       System.out.println("GTFO !"); 
     } 
    } 
} 

क्या इनमें से कोई त्रुटि मार्कर खड़ी कर रहा है ?

+2

वह त्रुटि संदेश आमतौर पर खराब क्लासपाथ की वजह से होता है। पूरे प्रोजेक्ट का पुनर्निर्माण करने का प्रयास करें, जो आमतौर पर अधिक उपयोगी त्रुटि देता है, – skaffman

+0

सबसे पहले, उत्तर के लिए धन्यवाद;) मैंने इसे पहले से बनाने की कोशिश की है, कुछ भी नहीं बदला है। मैंने प्रोजेक्ट> क्लीन की कोशिश की ... यह काम नहीं किया। मेरे क्लासपाथ में, मैंने पुस्तकालयों के क्रम को बदलने की कोशिश की, कुछ भी नहीं बदला:/ – c4k

+0

[ग्रहण संकलन त्रुटि का संभावित डुप्लिकेट: प्रकार 'वर्ग नाम' का पदानुक्रम असंगत है] (http://stackoverflow.com/questions/ 85200 9 0/ग्रहण-संकलन-त्रुटि-द-पदानुक्रम-ऑफ-द-टाइप-क्लास-नाम-इन्स-इन्सॉसिस्टेन) –

उत्तर

1

असल में समस्या इसलिए थी क्योंकि मैंने सारलिस्ट लिविंग @ कॉन्फिगर करने योग्य बनाया था। जब मैंने अंतिम कक्षा (उदाहरण के लिए बैंक व्यू) पर इस एनोटेशन को रखा, तो सभी त्रुटियां गायब हो गईं।

सहायता के लिए सभी को धन्यवाद। अगर किसी को भी एक ही त्रुटि है तो उन्हें विभिन्न उत्तरों में समाधान मिलेगा।

49

मेरे मामले में, मुझे The hierarchy of the type ... is inconsistent त्रुटि मिली जो कि एक जार फ़ाइल वर्ग के कारण ग्रहण में त्रुटि हुई थी, जिससे मैं अपनी कक्षा को उस वर्ग को संदर्भित कर रहा था जो निर्माण पथ में नहीं था।

तो अगर आप हैं:

// in other.dep.jar 
class FromOtherDepJar {} 

// in dep.jar 
class FromDepJar extends FromOtherDepJar {} 

// in the current project 
class ProblematicClass extends FromDepJar {} 

तो dep.jar परियोजना की classpath में है, लेकिन other.dep.jar नहीं है, ग्रहण The hierarchy of the type ... is inconsistent त्रुटि दिखाई देगा।

ग्रहण में समस्या दृश्य पर नज़र डालें, विवरण कॉलम होवर ओवर की वास्तविक समस्या के बारे में अधिक वर्बोज़ है।

+0

मुझे "ग्रीटिंग द वर्ल्डफ्लिक्चर का पदानुक्रम असंगत है" जबकि फिटनेस ट्यूटोरियल की कोशिश करते हुए, पता चला कि मैं था मेरी परियोजनाओं क्लासपाथ में fite.jar गायब, जवाब के लिए धन्यवाद! –

+0

लिंक काम नहीं करता –

+1

@ गैबरलिटाक लिंक हटा दिया गया, आईआईआरसी ने समस्या के लिए यही कारण बताया – Alex

0

उनकी संभावना है कि आपकी मेवेन निर्भरताएं पहचाने जाएं। देखें कि क्या आपने इस विशेष परियोजना के लिए मेवेन सक्षम किया है या नहीं। ग्रहण मेवेन में परियोजना पर राइट क्लिक करके सक्रिय किया जा सकता है और मेवेन -> मेवेन निर्भरता सक्षम करें।

1

समस्या को हल करने के लिए बिल्ड पथ को पुन: कॉन्फ़िगर करें।

0

मेरे मामले में मैं गलत जेआरई संस्करण का उपयोग कर रहा था।

1

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

0

मुझे यह समस्या थी जब मैंने अपने एंड्रॉइड प्रोजेक्ट में एक्शनबर्सहेलॉक जोड़ा और मेरी मूल परियोजना से समर्थन-पुस्तकालय को निकालना भूल गया। समाधान आपके प्रोजेक्ट से एंड्रॉइड-सपोर्ट-v4.jar को निकालना है और प्रोजेक्ट को साफ करना है .. इसे लाइब्रेरी को एक्शनबार्सहेलॉक फ़ोल्डर से लोड करना चाहिए।

1

एक अन्य कारण एक सुपरक्लास या सुपरइंटरफेस का संदर्भ है जो मौजूद है, लेकिन एक अलग पैकेज में है, और न तो आयात किया गया है और न ही पूरी तरह योग्य है।

यह नेक्स्टेस इंटरफेस से विरासत में प्राप्त अमूर्त वर्गों को स्थानांतरित करने के लिए एक्लिप्स रीफैक्टरिंग का उपयोग करने के बाद मेरे लिए हुआ। चाल के बाद, सभी उप-वर्गों में "टाइप एक्स का पदानुक्रम असंगत" संदेश था। समस्या को हल किए गए अमूर्त वर्गों में हाथ से आयात करके हल किया गया था।

0

मैं यह जानता हूँ शायद मामला यहाँ नहीं है, लेकिन सिर्फ अतिरिक्त जानकारी के लिए जब इंटरफेस के एक पदानुक्रम का उपयोग कर और वहाँ (जैसे गलत जेनरिक के रूप में) कुछ त्रुटि है इस त्रुटि के कारण हो सकता अपने पदानुक्रम में कहीं अधिक

0

यह त्रुटि तब भी दिखाई देती है जब एंड्रॉइड-सपोर्ट लाइब्रेरी मेलसमैच होता है यानी जब आपके द्वारा उपयोग की जाने वाली दो बाहरी लाइब्रेरीज़ में समर्थन लाइब्रेरी के दो संस्करण होते हैं, तो यह त्रुटि दिखाती है, (मैंने जो किया था, मैंने उन्हें एक ही संस्करण बनाकर और दोनों को समर्थन कॉपी करके समान संस्करण बनाये इस के लिए अन्य तीसरी पार्टी लाइब्रेरी)

0

त्रुटि कहती है कि आप किसी संदर्भित जार को याद कर रहे हैं।

मेरे मामले में मुझे स्प्रिंग एमवीसी प्रोजेक्ट बनाने के दौरान यह त्रुटि मिली। मैं निर्माण पथ में संबंधित जेएआर फाइलों (वसंत-संदर्भ-4.1.0.RELEASE.jar & वसंत-वेब-4.1.0.RELEASE.jar) जोड़ने से चूक गया।

हालांकि अन्य Spring JARs (कोर, बीन्स, एओपी & एमवीसी) पहले से ही जोड़े गए थे लेकिन ऊपर उल्लिखित जेएआर फाइलों की भी आवश्यकता थी। एक बार मैंने अन्य जार जोड़े, तो त्रुटि गायब हो गई।

1

मेरी समस्या यह थी कि कक्षाओं/जारों को चींटी और धीरे-धीरे कार्यों का उपयोग करके एक्लिप्स के बाहर मैन्युअल रूप से पुन: संकलित किया गया था। सभी परियोजनाओं को ताज़ा करना और ग्रहण में पुनर्निर्माण ने त्रुटियों को गायब कर दिया।

0

मैं यह त्रुटि प्रकार ServiceController के पदानुक्रम हल असंगतद्वारा समस्या को दूर करने सभी जार Build Path में की Referenced Libraries और फिर से ग्रहण आईडीई में सभी जार जोड़ने है।

0

मैंने javax.servlet-api-3.0.1.jar जोड़कर इस समस्या को हल किया। मेरा विकास उपकरण ग्रहण है, लेकिन मेरी परियोजना को ग्रहण के तहत विकसित किया गया था, फिर जब मैं प्रोजेक्ट को ग्रहण में आयात करता हूं, तो यह "SysUserFilter प्रकार का पदानुक्रम असंगत है", इसलिए मुझे लगता है कि Myeclipse स्वचालित रूप से javax.servlet-api-3.0 प्रदान करता है .1.jar, लेकिन ग्रहण नहीं। इसलिए इसे मैन्युअल रूप से आयात करने की आवश्यकता है।

0

जाओ और वास्तव में अपने निर्माण पथ (परियोजना गुण => जावा बिल्ड पथ => पुस्तकालय) की जांच करें और संवाद आपको दिखा सकता है कि कुछ गुम है। यह मेरी समस्या थी, जहां परियोजना काम कर रही थी लेकिन फिर एक या दो महीने बाद यह काम करना बंद कर दिया क्योंकि मेरा जेआरई सेटअप बदल गया।

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