2011-09-30 12 views
8

मेरी प्रोजेक्ट में, मैं ग्लासफ़िश-एम्बेडेड 3.1.1 और अमरूद lib दोनों का उपयोग कर रहा हूं ... समस्या यह है कि ग्लासफ़िश अमरूद (यानी Google संग्रह) के पुराने कार्यान्वयन के साथ आता है। ..क्लासपाथ संघर्ष से निपटने के लिए कैसे करें

इसका परिणाम रनटाइम पर NoSuchMethodError में होता है, उदाहरण के लिए जब Lists.reverse(), या Sets.newIdentityHashSet() का उपयोग करते हैं जो बाद में अमरूद में पेश किए गए थे।

मैं इस को हल करने के लिए किसी भी समाधान नहीं मिल रहा है ... (केवल एक मैन्युअल com/glassfish जार में गूगल कक्षाएं निर्देशिका को कूड़ेदान में है ...)

+0

क्या आपको कभी कोई कामकाज मिला है? – JagWire

+1

दुर्भाग्यवश, बिल्कुल नहीं ... –

+1

यदि आप परवाह करते हैं, तो मुझे एक एम्बेडेड v4 बिल्ड मिला और क्लासपाथ समस्या दूर हो गई। आप यहां निर्माण कर सकते हैं: http://grepcode.com/snapshot/maven.java.net/content/groups/promoted/org.glassfish.main.extras/glassfish-embedded-all/4.0.1-b01 – JagWire

उत्तर

4

Glassfish अपने स्वयं के जार में com.google कक्षाएं कभी नहीं शामिल करना चाहिए था। वह एक त्रुटि थी।

अद्यतन [@ sly7_7]: ऐसा लगता है जैसे ग्लासफ़िश में अपने स्वयं के जार में अमरूद शामिल नहीं है, लेकिन यह इसके बजाय अमरूद आर्टिफैक्ट पर निर्भर करता है। यह समस्या को हल करना चाहिए। इसे इंगित करने के लिए @JagWire के लिए धन्यवाद।

+0

यही मुझे लगता है। .. और यह slf4j के लिए एक ही बात है :( –

+0

क्या समस्या के समाधान में कोई समाधान या समाधान है? – JagWire

6

आप दूर कर सकते हैं इस को निर्दिष्ट किया नीचे। पढ़ें Delegation section of the Class Loaders chapter.

<class-loader delegate="false" /> 

चेक इस अतः सामान्य रूप में जावा ईई क्षुधा में वर्ग लोड करने के लिए पोस्ट: Java EE class loading standard

+0

हम इसे आज़माते हैं, लेकिन यह हमारे मामले में काम नहीं करता है ... परिणामस्वरूप क्लासकास्टएक्सप्शन (संभवतः विभिन्न क्लासलोडर्स द्वारा लोड की गई कक्षाओं के कारण) –

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