2012-10-30 25 views
8

में सर्विस लोडर समस्या मैं सीडीआई का उपयोग करने में हमारे सक्रियता कार्यान्वयन को दोबारा करने की कोशिश कर रहा हूं लेकिन कई समस्याओं में भाग गया। मैंने इसे पहले से हल करने का प्रयास करने में बहुत अधिक समय बिताया है, लेकिन मैं इसे जाने नहीं दे सकता ... मुझे लगता है कि मैंने अब समस्या को पिन कर दिया है, सक्रियता को शामिल किए बिना एक साफ संरचित युद्ध स्थापित कर रहा है और सक्षम हूं जो मुझे लगता है उसे पुन: पेश करने के लिए मुख्य समस्या है।WebLogic12c

असल में मेरे पास jar1 और jar2 है, दोनों सीडीआई मेटा-आईएनएफ/beans.xml सहित सक्षम है। दोनों जार मेटा-आईएनएफ/सेवाओं/परीक्षण में एक वर्ग निर्दिष्ट करते हैं। नवीनतम स्थानीय जार के कार्यान्वयन को इंगित करते हैं। jar1 jar2 पर निर्भर करता है। साथ ही, दोनों जार परिदृश्य को ट्रिगर करते हुए javax.enterprise.inject.spi.Extension के कार्यान्वयन को इंगित करते हैं।

public void afterDeploymentValidation(
     @Observes AfterDeploymentValidation event, BeanManager beanManager) { 


    System.out.println("In jar1 extension"); 
    ServiceLoader<TheTest> loader = ServiceLoader.load(TheTest.class); 
    Iterator<TheTest> serviceIterator = loader.iterator(); 
    List<TheTest> discoveredLookups = new ArrayList<TheTest>(); 
    while (serviceIterator.hasNext()) { 
     TheTest serviceInstance = (TheTest) serviceIterator.next(); 
     discoveredLookups.add(serviceInstance); 
     System.out.println(serviceInstance.getClass().getName()); 
    } 
} 

अब, मेरी समस्या यह है कि ServiceLoader या तो मामले में किसी भी कार्यान्वयन नहीं देखता जब WebLogic12c चल: एक्सटेंशन में से प्रत्येक के कार्यान्वयन में, मैं की तरह एक विधि है। एक ही कोड जेबॉस 7.1.1 और ग्लासफ़िश दोनों में पूरी तरह से ठीक काम करता है, परीक्षण के दोनों कार्यान्वयन की सूची। सबसे इंटरफ़ेस।

क्या यह मानना ​​उचित है कि यह वास्तव में वेबलॉगिक 12 सी में एक समस्या है या क्या मैं कुछ गलत कर रहा हूं? कृपया ध्यान रखें कि मैं केवल सक्रियता को शामिल करते समय उपयोग किए जाने वाले उत्पादन सेटअप का अनुकरण करने की कोशिश कर रहा हूं।

सादर, /पैटर

+0

क्या आपके पास इस पर कोई अपडेट किया गया है? –

+0

दुर्भाग्य से नहीं। WebLogic में क्लासलोडिंग schematics के साथ एक मुद्दा लगता है। यह देखने के लिए कि क्या समस्या हल हो रही है, वेबलॉगिक के अगले संस्करण की उत्सुकता से प्रतीक्षा कर रहे हैं। –

उत्तर

0

वहाँ एक classloader विश्लेषण उपकरण WLS के साथ प्रदान की है, तो आप अगर इससे आपकी समस्या के निदान के साथ मदद मिलेगी देखा है।

आप आईपी: पोर्ट/wls-cat/index.jsp पर जाकर इस टूल तक पहुंच सकते हैं जहां पोर्ट प्रबंधित सर्वर का बंदरगाह होगा जहां आपका एप्लिकेशन तैनात किया गया है।