2008-09-15 10 views
12

मैं अपने जावा ऐप को वेब सर्वर से कनेक्ट करने के लिए अपाचे एक्सिस का उपयोग कर रहा हूं। मैं मेरे लिए स्टब्स बनाने के लिए इस्तेमाल किया wsdl2java, लेकिन जब मैं स्टब्स इस्तेमाल करने की कोशिश, मैं निम्नलिखित अपवाद:अपाचे एक्सिस कॉन्फ़िगरेशन एक्सेप्शन

org.apache.axis.ConfigurationException: नहीं सेवा <web service name> नामित उपलब्ध

है

कोई विचार?

उत्तर

2

बस एक अनुमान है, लेकिन ऐसा लगता है कि त्रुटि संदेश रिपोर्टिंग कर रहा है कि आपने सेवा का नाम खाली छोड़ दिया है। मुझे लगता है कि कोड है कि त्रुटि संदेश उत्पन्न करता है इस तरह दिखता है:

throw new ConfigurationException("No service named" + serviceName + " is available"); 
0

यह मेरा कोड जैसा दिखता है। यह काम तो ठीक करता है। क्या आप एक सेवा लोकेटर का उपयोग कर रहे हैं या बस अपनी सेवा बना रहे हैं?

SomeServiceLocator locator = new SomeServiceLocator(); 
SomeService service = null; 
try 
{ 
    service = locator.getSomeServiceImplPort(); 
} 
catch (ServiceException e) 
{ 
    e.printStackTrace(); 
} 
0

मैं एक्सिस के किस संस्करण का उपयोग कर रहे हैं, लेकिन मैं दोनों सर्वर और ग्राहक और Java2WSDL एक डिफ़ॉल्ट बनाने के लिए Axis2 उपयोग कर रहा हूँ पता नहीं है लोकलहोस्ट पर सेवा के लिए एंडपॉइंट। यदि आप WSDL2Java के साथ क्लाइंट स्टब बनाते हैं, तो स्टब का डिफ़ॉल्ट कन्स्ट्रक्टर स्थानीयहोस्ट पर इंगित करेगा। यदि सेवा दूसरे एंडपॉइंट पर है तो आपको एंड्रॉइड के साथ एंड्रॉइंट के साथ पैरामीटर के रूप में उपयोग करना होगा ... शायद समस्या यह नहीं है कि जैसा कि अन्य उत्तरों पर कहा गया है, डब्लूएसडीएल के बिना आप डब्लूएसडीएल 2 जावा इनपुट के रूप में उपयोग कर रहे हैं, यह कहना मुश्किल है ।

19

documentation @arnonym से जुड़े के अनुसार है, यह अपवाद कुछ भ्रामक है। सेवा को खोजने के पहले प्रयास में कॉन्फ़िगरेशन अपवाद फेंक दिया जाता है और पकड़ा जाता है। यह कॉन्फ़िगरेशन एक्सेप्शन क्लास द्वारा DEBUG स्तर पर लॉग है। फिर सेवा का पता लगाने के लिए एक अलग विधि का उपयोग करके एक और प्रयास किया जाता है जो सफल हो सकता है। इसके लिए वर्कअराउंड सिर्फ आपके log4j.properties में कॉन्फ़िगरेशन एक्सेप्शन क्लास में लॉग स्तर को बदलना है:

log4j.logger.org.apache.axis.ConfigurationException = INFO