java - जावा एई 6 को संसाधन एडाप्टर के लिए कार्यान्वित करने के लिए क्यों बराबर() और हैशोड() की आवश्यकता होती है?



resources adapter (1)

मुझे लगता है कि यह निम्नलिखित कारण है

चेकआउट मैनेजमेंट कनेनेंचर यहाँ पर।

यह एक इंटरफ़ेस है और इसे equals() और hashCode() तरीके देखें। इसलिए मूल जावा, इंटरफ़ेस लागू करने वाला पहला ठोस वर्ग इंटरफ़ेस के सभी तरीकों को परिभाषित करना चाहिए। जो आपके संसाधन एडाप्टर को कार्यान्वित करना होगा, इसलिए इन विधियों को परिभाषित करना होगा

देखें एक संसाधन एडाप्टर को ManagedConnectionFactory को यहां लागू करने की आवश्यकता है।

उपरोक्त प्रश्न के मुताबिक, जेसीए 1.6 स्पेक्ट्र के अनुसार हम को कार्यान्वयन की आवश्यकता है

A resource adapter must provide implementations of the following interfaces:

javax.resource.spi.ManagedConnectionFactory
javax.resource.spi.ManagedConnection
javax.resource.spi.ManagedConnectionMetaData

जो 1.5 के साथ मामला नहीं था

इसलिए यही कारण है कि यह सत्यापन के दौरान त्रुटि देता है

जेसीए सत्यापनकर्ता संस्करण 1.6 के साथ और अधिक कठोर हो गया है, इस प्रकार त्रुटि

इस बारे में कुछ भी बहुत स्पष्ट नहीं है, एक ही मुद्दे के बारे में इंटरनेट पर बहुत सारे प्रश्न और पद हैं मुझे मिलना सबसे अच्छा संभव व्याख्या एक कनेक्शन कारखाने प्रदान करने की "आवश्यकता" थी।

इसके अलावा, आपको त्रुटि को बायपास करने की आवश्यकता है, आपको या तो जेसीए 1.5 पर स्विच करना होगा या 1.6 को अक्षम करना होगा

मैं JBoss 5.1 से JBoss 7.1 के कोड को अपग्रेड करने पर काम कर रहा हूं और यह विफल हो जाता है अगर ये विधियों को स्पष्ट रूप से संसाधन एडाप्टर में लागू नहीं किया गया है। मैं प्रत्येक की अवधारणा को समझता हूं, और दोनों के बीच के अनुबंध के बारे में जानता हूं। मैं उनसे लागू करने के बारे में नहीं पूछ रहा हूं या उनका क्या मतलब है। मैं विशेष रूप से पूछ रहा हूं कि उन्हें जावा ईई 6 कोड के लिए लागू किया जाना चाहिए (इस मामले में जेबीस एएस 7.1)।

क्या उनमें बहुत सोचा है या यह बस के लिए पर्याप्त है:

boolean equals(Object obj) { return super.equals(obj) ; }
int hashCode() { return super.hashCode() ; }




jboss7.x