@ doc_180 में सही अवधारणा थी, सिवाय इसके कि वह संख्याओं पर केंद्रित है, जबकि मूल पोस्टर में तार के साथ मुद्दे थे।
समाधान mx.rpc.xml.XMLEncoder
फ़ाइल को बदलना है । यह लाइन 121 है:
if (content != null)
result += content;
(मैंने फ्लेक्स 4.5.1 एसडीके को देखा; पंक्ति संख्या अन्य संस्करणों में भिन्न हो सकती है।)
मूल रूप से, सत्यापन विफल हो जाता है क्योंकि 'सामग्री शून्य है' और इसलिए आपका तर्क निवर्तमान SOAP पैकेट में जोड़ा नहीं गया है; इस प्रकार लापता पैरामीटर त्रुटि का कारण बनता है।
मान्यता को हटाने के लिए आपको इस वर्ग का विस्तार करना होगा। फिर श्रृंखला में एक बड़ा स्नोबॉल है, अपने संशोधित XMLEncoder का उपयोग करने के लिए SOAPEncoder को संशोधित करना, और फिर अपने संशोधित SOAPEncoder का उपयोग करने के लिए ऑपरेशन को संशोधित करना, और फिर अपने वैकल्पिक ऑपरेशन वर्ग का उपयोग करने के लिए WebService को moidfying करना।
मैंने इस पर कुछ घंटे बिताए, लेकिन मुझे आगे बढ़ने की जरूरत है। शायद एक-दो दिन लगेंगे।
आप बस एक्सलेन्कोडर लाइन को ठीक करने में सक्षम हो सकते हैं और अपने स्वयं के वर्ग का उपयोग करने के लिए कुछ बंदर पैचिंग कर सकते हैं।
मैं यह भी जोड़ूंगा कि यदि आप कोल्डफ़्यूज़न के साथ रिमोटऑबजेक्ट / एएमएफ का उपयोग करने के लिए स्विच करते हैं, तो नल समस्याओं के बिना पारित हो जाता है।
11/16/2013 अपडेट :
RemoteObject / AMF के बारे में मेरी पिछली टिप्पणी के अलावा मेरे पास एक और हालिया जोड़ है। यदि आप कोल्डफ्यूजन 10 का उपयोग कर रहे हैं; फिर किसी ऑब्जेक्ट पर एक शून्य मान वाले गुणों को सर्वर-साइड ऑब्जेक्ट से हटा दिया जाता है। तो, आपको इसे एक्सेस करने से पहले गुणों के अस्तित्व की जांच करनी होगी या आपको एक रनटाइम त्रुटि मिलेगी।
इस तरह की जाँच करें:
<cfif (structKeyExists(arguments.myObject,'propertyName')>
<!--- no property code --->
<cfelse>
<!--- handle property normally --->
</cfif>
यह ColdFusion 9 से व्यवहार में बदलाव है; जहां रिक्त गुण रिक्त तारों में बदल जाते हैं।
12/6/2013 को संपादित करें
चूंकि एक सवाल था कि नल का इलाज कैसे किया जाता है, यहां एक त्वरित नमूना अनुप्रयोग है जो यह दर्शाता है कि कैसे एक स्ट्रिंग "नल" आरक्षित शब्द नल से संबंधित होगा।
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" initialize="application1_initializeHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_initializeHandler(event:FlexEvent):void
{
var s :String = "null";
if(s != null){
trace('null string is not equal to null reserved word using the != condition');
} else {
trace('null string is equal to null reserved word using the != condition');
}
if(s == null){
trace('null string is equal to null reserved word using the == condition');
} else {
trace('null string is not equal to null reserved word using the == condition');
}
if(s === null){
trace('null string is equal to null reserved word using the === condition');
} else {
trace('null string is not equal to null reserved word using the === condition');
}
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</s:Application>
ट्रेस आउटपुट है:
null string = = condition का उपयोग करके null आरक्षित शब्द के बराबर नहीं है
नल स्ट्रिंग == स्थिति का उपयोग करते हुए शून्य आरक्षित शब्द के बराबर नहीं है
नल स्ट्रिंग === स्थिति का उपयोग करते हुए शून्य आरक्षित शब्द के बराबर नहीं है