2012-09-25 43 views
5

का उपयोग कर साबुन, मैं सीएक्सएफ का उपयोग कर webservice विकसित कर रहा हूं। मैं HTTP बाध्यकारी का उपयोग करता हूं ताकि http://www.w3.org/TR/wsdl#_soap:operationसाबुन इस प्रकार के परिवहन के लिए अनिवार्य है।डब्ल्यूएसडीएल में सीएक्सएफ

समस्या यह है कि मैं परीक्षण और उत्पादन सर्वर के लिए एक ही एप्लिकेशन को तैनात करना चाहता हूं। मैं इसे पुनर्निर्माण आवेदन या बाहरी डब्लूएसडीएल फाइलों को बनाए रखने के बिना करना चाहता हूं, जो रखरखाव सूची पर एक और चीज़ जोड़ देगा।

मुझे स्थान के साथ एक ही समस्या थी, लेकिन यह हल करने के लिए तुच्छ था। मैंने उचित मूल्य निर्धारित करने के लिए एंडपॉइंट कॉन्फ़िगरेशन में प्रकाशित एंडपॉइंट यूआरएल का उपयोग किया। मूल्य बाहरी संपत्ति फ़ाइल से आवेदन शुरू करने के दौरान पुनर्प्राप्त किया जाता है, जिसे मैंने क्लासपाथ टोमकैट/सामान्य/कक्षा पर रखा था।

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:soap="http://cxf.apache.org/bindings/soap" xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> 
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
     <value>classpath:ws.properties</value> 
     </list> 
    </property> 
    </bean> 
    <jaxws:endpoint xmlns:tns="http://example.org/ds" id="ds" implementor="org.example.Ds" wsdlLocation="wsdl/ds.wsdl" endpointName="tns:dsSOAP" serviceName="tns:Ds" address="/dsSOAP" publishedEndpointUrl="${publishedEndpointUrl}"> 
    <jaxws:features> 
     <bean class="org.apache.cxf.feature.LoggingFeature" /> 
    </jaxws:features> 
    </jaxws:endpoint> 
</beans> 

मैं साबुन के लिए समान कार्यक्षमता प्राप्त करना चाहता हूं। इस विशेषता के लिए मूल्य सापेक्ष यूआरआई नहीं होना चाहिए। तो परीक्षण के लिए यह होना चाहिए:

<soap:operation soapAction="https://test.example.org/dsSOAP/operation1" /> 

और उत्पादन

<soap:operation soapAction="https://example.org/dsSOAP/operation1" /> 

के लिए किसी भी विचार है कि यह कैसे प्राप्त करने के लिए?

+0

कोई भी मदद करने के इच्छुक हैं? –

+0

आपके परीक्षण और उत्पादन सेवा के लिए आपको विभिन्न साबुन की आवश्यकता कैसे है? यदि दोनों सेवाएं एक ही डब्लूएसडीएल का उपयोग करती हैं, तो आप एक बार साबुन क्रिया को परिभाषित कर सकते हैं और परीक्षण और प्रोड के लिए एक ही साबुन कार्रवाई का उपयोग कर सकते हैं। –

+0

@ योगेश चावला अगर मैं दस्तावेज़ीकरण के कारण गलत नहीं हूं तो विशेषता 'साबुनएसीन' को पूर्ण यूआरएल का उपयोग करने की आवश्यकता है। इसलिए मैं वहां एक 'डीएसओओएपी/ऑपरेशन 1' नहीं डाल सकता। परीक्षण और उत्पादन दोनों के लिए समान मूल्य होने के कारण मैं ग्राहकों के साथ परीक्षण सर्वर के बजाय उत्पादन सर्वर का आह्वान करना शुरू कर सकता हूं। –

उत्तर

1

आपको एक पूर्ण यूआरएल निर्दिष्ट करने की आवश्यकता नहीं है, आपको या तो यूआरएल निर्दिष्ट करने की आवश्यकता नहीं है। "ऑपरेशन 1" पर्याप्त होगा। http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528

कुछ आधिकारिक उदाहरण देखें पर्यावरण के साथ साबुन कार्रवाई को जोड़ना उदाहरण "चल रहा है" नहीं है।