सेवा कॉन्स्ट्रक्शन अपवाद विभिन्न चरणों में हो सकता है जब सीएक्सएफ प्रदान की गई सेवा, पोर्ट और बाध्यकारी नाम की तुलना wsdl से पहले से ही पार्स किया गया है। इस मामले में (और ज्यादातर मामलों में) यह नामस्थान समस्या दिखता है।
{http://sendmessage/}SendMessage
या तो पार्सड wsdl में मौजूद नहीं है या सेवा नाम WSDL में मौजूद QName से मेल नहीं खाता है। अन्य मामले भी हैं जहां बाध्यकारी या बंदरगाह मेल नहीं खाता है, एक को एक ही अपवाद प्राप्त हो सकता है। org.apache.cxf.wsdl11.WSDLServiceFactory.create()
विधि से एक कोड स्निपिट निम्नलिखित है जहां यह सब होता है।
तो बातें स्पष्ट क्यों वास्तव में यह अपने सबसे अच्छे शर्त हो रहा है नहीं कर रहे हैं कोड के इस टुकड़े डिबग और जहां यह असफल रहने और (wsdl4j.jar में com.ibm.wsdl.DefinitionImpl
) क्या पार्स wdsl परिभाषा नहीं है यह देखने के लिए है।
javax.wsdl.Service wsdlService = definition.getService(serviceName);
if (wsdlService == null) {
if ((!PartialWSDLProcessor.isServiceExisted(definition, serviceName))
&& (!PartialWSDLProcessor.isBindingExisted(definition, serviceName))
&& (PartialWSDLProcessor.isPortTypeExisted(definition, serviceName))) {
try {
Map<QName, PortType> portTypes = CastUtils.cast(definition.getPortTypes());
String existPortName = null;
PortType portType = null;
for (QName existPortQName : portTypes.keySet()) {
existPortName = existPortQName.getLocalPart();
if (serviceName.getLocalPart().contains(existPortName)) {
portType = portTypes.get(existPortQName);
break;
}
}
WSDLFactory factory = WSDLFactory.newInstance();
ExtensionRegistry extReg = factory.newPopulatedExtensionRegistry();
Binding binding = PartialWSDLProcessor.doAppendBinding(definition,
existPortName, portType, extReg);
definition.addBinding(binding);
wsdlService = PartialWSDLProcessor.doAppendService(definition,
existPortName, extReg, binding);
definition.addService(wsdlService);
} catch (Exception e) {
throw new ServiceConstructionException(new Message("NO_SUCH_SERVICE_EXC", LOG, serviceName));
}
} else {
throw new ServiceConstructionException(new Message("NO_SUCH_SERVICE_EXC", LOG, serviceName));
}
पुनश्च: मैं जानता हूँ कि इस मुद्दे को 2011 में वापस खोला गया था लेकिन हाल ही में मैं एक ही मुद्दे का सामना करना पड़ा और इसे हल करने में सक्षम था। मुझे उम्मीद है कि यह उन लोगों की मदद करेगा जो इस मुद्दे का सामना कर रहे हैं।
स्रोत
2016-11-28 08:42:53
यहां एक संबंधित प्रश्न है। http://stackoverflow.com/questions/3006185/cxf-client-webservice-question –