2012-11-29 11 views
38

कंसोल मोड में उपयोग के अपाचे CXF JaxWsServerFactoryBean नीचे की तरह अपवाद हो जाएगा (जावा कमांड लाइन से सर्वर प्रारंभ करने का प्रयास) जब:उपयोग CXF JaxWsServerFactoryBean अपवाद किसी भी बस स्टैंड से पंजीकृत HttpDestinationFactory नहीं खोजा जा सका

Caused by: java.io.IOException: Cannot find any registered HttpDestinationFactory from the Bus. 
     at org.apache.cxf.transport.http.HTTPTransportFactory.getDestination(HTTPTransportFactory.java:295) 
     at org.apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTransportFactory.java:143) 
     at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:93) 
     at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:72) 
     at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:160) 

जब एक ही स्प्रिंग के माध्यम से टोमकैट में प्रयुक्त सेवा प्रत्यारोपण, यह काम करता है।

<jaxws:endpoint id="abc" implementor="com.AbcServicePortTypeImpl" address="/abc"> 
+9

ऐड घाट निर्भरता जार द्वारा हल: (apache-cxf-2.7.0.zip से) CXF-RT-परिवहन-http-घाट-2.7.0.jar, Geronimo-servlet_3.0_spec -1.0.jar, जेटी - *। जार, ---- नोट: geronimo-servlet_3.0_spec-1.0.jar आवश्यक है अन्यथा क्लाइंट में "कनेक्शन अस्वीकार" अपवाद प्राप्त होगा। –

+1

मैं इसे एक उत्तर के रूप में उभारा होगा! धन्यवाद – ThanksForAllTheFish

उत्तर

3

मुझे एक ही समस्या थी। और Google सामग्री में से कोई भी समझ में नहीं आया था। मैं अपने मामले कि मैं वसंत संदर्भ फ़ाइल में निम्न याद आ रही थी में पता चला:

<import resource="classpath:META-INF/cxf/cxf.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 
66

शामिल CXF-RT-परिवहन-http-घाट Maven pom.xml समस्या का समाधान होगा में जार।

<dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http-jetty</artifactId> 
     <version>2.7.6</version> 
    </dependency> 
+3

परीक्षण जोड़ने पर विचार करें यदि आपको केवल अपने घटक परीक्षणों की आवश्यकता है, तो आमतौर पर जब आप सर्वलेट कंटेनर के तहत अपना ऐप चला रहे हों। – ievgen

+0

युक्तियों के लिए धन्यवाद – sendon1982

3

एक अन्य समाधान जो सीएसवी 2.7.15 के साथ काम करता है: जब आप Bus बनाने के लिए, एक विस्तार रजिस्टर:

ServletDestinationFactory destinationFactory = new ServletDestinationFactory(); 
bus.setExtension(destinationFactory, HttpDestinationFactory.class); 
4

उदाहरण के लिए, आप विन्यास नीचे है और पता है http संलग्न परिभाषित किया गया है, तो इसके लिए, जो कॉन्फ़िगर किए गए CXFServlet के सापेक्ष यूआरएल नहीं है, उपरोक्त त्रुटि आ जाएगी।

<jaxrs:server id="helloRestService" address="http://..."> 
     <jaxrs:serviceBeans> 
      <ref bean="helloService" /> 
     </jaxrs:serviceBeans> 
</jaxrs:server> 

समाधान केवल http/https पते के लिए संबंधित यूआरएल का उल्लेख करना है।

http://grokbase.com/t/camel/users/155f1smn4v/error-cannot-find-any-registered-httpdestinationfactory-from-the-bus

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