मुझे अपने सीएक्सएफ वेब सेवा एंडपॉइंट कॉन्फ़िगरेशन में एक सापेक्ष प्रकाशन पते का उपयोग करने में बहुत कठिनाई हो रही है।सीएक्सएफ जैक्सव्स एंडपॉइंट सापेक्ष प्रकाशन पता
मैं निम्नलिखित विन्यास फाइल के साथ एक सरल जावा पहले JAX-WS परियोजना है:
applicationContent-cxf.xml:
<beans xmlns=...>
...
<jaxws:endpoint
id="helloWorldService"
implementorClass="org.helloworld.ws.HelloWorldServiceImpl"
implementor="#helloWorldServiceImpl" <!-- spring managed -->
endpointName="sayHello"
address="HelloWorldService"/>
</beans>
web.xml:
<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
WEB-INF/applicationContext.xml
WEB-INF/applicationContext-cxf.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<display-name>Hello World Servlet</display-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
अनुसार http://cxf.apache.org/docs/servlet-transport.html पर, ऐसा लगता है कि मुझे HelloWorldService
का प्रकाशित पता निर्दिष्ट करने में सक्षम होना चाहिए और सेवा का URL (उदाहरण के लिए) http://localhost:8080/services/HelloWorldService को हल करेगा। लेकिन जब मैं http://localhost:8080/services/HelloWorldService?wsdl पर जाने का प्रयास करता हूं तो मुझे 404 मिलते हैं। अगर मैं अपने jaxws एंडपॉइंट में पूर्ण पता http://localhost:8080/services/HelloWorldService
पर प्रकाशित पता बदलता हूं तो मैं wsdl तक पहुंचने में सक्षम हूं।
यदि संभव हो तो मैं एक सापेक्ष एंडपॉइंट पता निर्दिष्ट करना चाहता हूं। मैं सीएक्सएफ (और वेब सेवाओं को लिखने) का उपयोग करने के लिए नया हूं, इसलिए किसी भी मदद की बहुत सराहना की जाती है!
अद्यतन 1:
ध्यान दें कि मैं बिलाव 7. करने के लिए अपने वेब सेवा की तैनाती कर रहा हूँ मैं नहीं जानता कि क्या यह प्रवेश करने जाता है, लेकिन मेरा प्रारंभ लॉग राज्यों Setting the server's publish address to be HelloWorldService
में लाइनों में से एक। अगर किसी को मेरी मदद करने के लिए अधिक जानकारी चाहिए तो कृपया मुझे बताएं।
अद्यतन 2:
ऐसा प्रतीत होता है CXF पता लगाता है कि एक CXFServlet "इस्तेमाल किया जा रहा" है या नहीं और अगर यह नहीं है एक एम्बेडेड घाट उदाहरण का उपयोग करता है। http://cxf.apache.org/docs/xfire-migration-guide.html#XFireMigrationGuide-HTTPandServletSetup। इसलिए, किसी कारण से सीएक्सएफ मेरे सर्वलेट के बजाय एम्बेडेड जेटी इंस्टेंस का उपयोग कर रहा है। हालांकि, मुझे नहीं पता कि मेरे वेब.एक्सएमएल में हैलोवर्ल्ड सर्लेट के अलावा मुझे और कॉन्फ़िगरेशन की आवश्यकता है, और सीएक्सएफ दस्तावेज मुझे और मदद नहीं करता है।
+1 अपने डेस्क पर अपने सिर को टक्कर देने के लिए +1 –
आपको समाधान पोस्ट करने की सराहना करते हैं, मेरे पास बिल्कुल वही समस्या थी और लगभग डेस्क पर मेरे सिर को टक्कर लगी :-) – user1339772