أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
SourceUnavailable
رمز الخطأ
steps.xml2json.SourceUnavailable
نص استجابة الخطأ
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Source [source_variable] is not available", "detail": { "errorcode": "steps.xmltojson.SourceUnavailable" } } }
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available",
"detail": {
"errorcode": "steps.xml2json.SourceUnavailable"
}
}
}
السبب
يحدث هذا الخطأ إذا كان متغيّر السلسلة message أو السلسلة المحدّدَين في عنصر <Source>
من سياسة تحويل XML إلى JSON هما:
- خارج النطاق (غير متوفّر في المسار المحدّد الذي يتم تنفيذ السياسة فيه)
- لا يمكن حلّه (لم يتم تحديده)
على سبيل المثال، يحدث هذا الخطأ إذا كان من المفترض تنفيذ سياسة تحويل XML إلى JSON في عملية معالجة الطلب، ولكن تم ضبط العنصر <Source>
على المتغيّر response
الذي لا يتوفّر في عملية معالجة الطلب.
التشخيص
حدِّد سياسة تحويل XML إلى JSON التي حدث فيها الخطأ واسم المتغيّر غير المتاح. يمكنك العثور على كلا العنصرين في العنصر
faultstring
في استجابة الخطأ. على سبيل المثال، في العنصرfaultstring
التالي، اسم السياسة هوConvert-XMLToJSON
والمتغيّر هوresponse
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
في ملف XML لسياسة تحويل XML إلى JSON الذي تعذّر تحويله، تأكَّد من أنّ اسم المتغيّر الذي تم ضبطه في عنصر
<Source>
يتطابق مع اسم المتغيّر المحدّد في سلسلة الخطأ (الخطوة 1 أعلاه). على سبيل المثال، تحدّد سياسة تحويل XML إلى JSON التالية متغيّرًا باسمresponse
في عنصر<Source>
، والذي يتطابق مع ما هو مضمّن فيfaultstring
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON"> <DisplayName>Convert-XMLToJSON</DisplayName> <Properties/> <Format>google</Format> <OutputVariable>response</OutputVariable> <Source>response</Source> </XMLToJSON>
حدِّد ما إذا كان المتغيّر المستخدَم في العنصر
<Source>
محدّدًا ومتاحًا في المسار الذي يتم فيه تنفيذ سياسة XML إلى JSON.إذا كان المتغيّر إما:
- خارج النطاق (لا تتوفّر خلال المسار المحدّد الذي يتم فيه تنفيذ السياسة)
- لا يمكن حلّه (لم يتم تحديده)
فهذا هو سبب الخطأ.
على سبيل المثال، لنفترض أنّه من المفترض تنفيذ سياسة تحويل XML إلى JSON الموضّحة أعلاه في عملية الطلب. يُرجى تذكُّر أنّه يتم استخدام المتغيّر
response
في عنصر<Source>
ضمن سياسة تحويل ملفات XML إلى ملف JSON. لا يتوفّر متغيّر الردّ إلا في مسار الردّ.بسبب عدم توفّر متغيّر الاستجابة في عملية الطلب، يظهر لك رمز الخطأ:
steps.xml2json.SourceUnavailable
الدقة
تأكَّد من أنّ المتغيّر الذي تم ضبطه في عنصر <Source>
لسياسة تحويل XML إلى JSON التي تعذّر تنفيذها محدّد ومتوفّر في العملية التي يتم تنفيذ السياسة فيها.
لتصحيح نموذج سياسة تحويل XML إلى JSON المعروض أعلاه، يمكنك تعديل العنصر <Source>
لاستخدام المتغيّر request
كما هو وارد في مسار الطلب:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
<DisplayName>Convert-XMLToJSON</DisplayName>
<Properties/>
<Format>google</Format>
<OutputVariable>response</OutputVariable>
<Source>request</Source>
</XMLToJSON>
ExecutionFailed
رمز الخطأ
steps.xml2json.ExecutionFailed
نص الاستجابة للخطأ
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Execution failed. reason: Premature end of document while parsing at line [line_number](possibly around char [character_number])", "detail": { "errorcode": "steps.xml2json.ExecutionFailed" } } }
الأسباب المحتملة
في ما يلي الأسباب المحتمَلة لهذا الخطأ:
السبب | الوصف |
حمولة البيانات الأساسية غير متوفّرة | حمولة الإدخال (بتنسيق XML) فارغة. |
إدخال غير صالح أو بتنسيق غير صحيح | الإدخال (XML) الذي تم تمريره إلى سياسة XML إلى JSON غير صالح أو مكتوب بشكلٍ غير صحيح. |
السبب: عدم توفّر حمولة الإدخال
في سياسة تحويل XML إلى JSON، إذا كان محتوى المتغيّر المحدّد في عنصر <Source>
فارغًا، يحدث هذا الخطأ.
على سبيل المثال، إذا تم ضبط عنصر <Source>
في سياسة تحويل XML إلى JSON على أنّه متغيّر request
أو response
وكان من المفترض أن يحتوي على حمولة XML، يحدث هذا الخطأ إذا كانت الحمولة فارغة.
التشخيص
حدِّد سياسة تحويل XML إلى JSON التي حدث فيها الخطأ. يمكنك العثور على هذه المعلومات في عنصر
faultstring
من استجابة الخطأ. على سبيل المثال، فيfaultstring
التالي، اسم السياسة هوConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly around char 0)"
راجِع عنصر
<Source>
في ملف XML الخاص بالسياسة الذي يتضمّن خطأً عند تحويله إلى ملف JSON وحدِّد المتغيّر المحدّد. على سبيل المثال، تم ضبط عنصر<Source>
في سياسة تحويل XML إلى JSON التالية على طلب:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON"> <DisplayName>Convert-XMLToJSON</DisplayName> <Properties/> <Options> <RecognizeNumber>true</RecognizeNumber> <RecognizeBoolean>true</RecognizeBoolean> <RecognizeNull>true</RecognizeNull> </Options> <OutputVariable>request</OutputVariable> <Source>request</Source> </XMLToJSON>
تحقَّق مما إذا كان المتغيّر المحدَّد للعنصر
<Source>
في سياسة XMLToJSON فارغًا. إذا كان الحقل فارغًا، هذا هو سبب الخطأ.في مثال سياسة تحويل XML إلى JSON الموضّح أعلاه، كانت الحمولة المطلوبة (أي نص الطلب) التي أرسلها العميل فارغة.
على سبيل المثال:
curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml"
لأنّ الحمولة في طلب XML فارغة، يظهر لك رمز الخطأ:
steps.xml2json.ExecutionFailed
يمكن أن يحدث هذا الخطأ أيضًا إذا تم ضبط عنصر
<Source>
على response، ولكن تم تمرير حمولة فارغة من خلال خادم الخلفية.
الدقة
تأكَّد من أنّ الإدخال الذي تم تمريره إلى سياسة تحويل XML إلى JSON من خلال العنصر <Source>
هو حمولة XML صالحة وغير فارغة.
لحلّ المشكلة المتعلقة بسياسة نموذج XML إلى JSON، اضبط حمولة XML صالحة. على سبيل المثال:
أنشئ ملفًا باسم city.xml يتضمّن المحتوى التالي:
<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
يمكنك إجراء طلب البيانات من واجهة برمجة التطبيقات باستخدام أمر cURL على النحو التالي:
curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml" -X POST -d @company.xml
السبب: إدخال غير صالح أو تم تنسيقه بشكلٍ غير صحيح
إذا أدّت سياسة XML إلى JSON إلى تحليل محتوى غير صالح أو غير صالح، سيظهر لك هذا الخطأ.
على سبيل المثال، إذا تم تقديم ملف XML التالي غير الصالح كإدخال في سياسة XML إلى JSON،
<?xml version="1.0" encoding="UTF-8"?>
<root>
<City>Bengaluru</City>
<Name>Apigee</Name>
<Pincode>560016</Pincode>
ستظهر لك رسالة الخطأ التالية:
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly around char 0)"
التشخيص
حدِّد سياسة تحويل XML إلى JSON التي حدث فيها الخطأ. يمكنك العثور على هذه المعلومات في العنصر
faultstring
في استجابة الخطأ. على سبيل المثال، في سياسةfaultstring
التالية، يكون اسم السياسة هوConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly around char 0)"
افحص العنصر
<Source>
المحدّد في ملف XML الذي يفشل في تحويل ملف XML إلى ملف لسياسة JSON. على سبيل المثال، تحتوي سياسة XML التالية إلى JSON على عنصر<Source>
تم ضبطه على المتغيّرrequest
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON"> <DisplayName>Convert-XMLToJSON</DisplayName> <Properties/> <Options> <RecognizeNumber>true</RecognizeNumber> <RecognizeBoolean>true</RecognizeBoolean> <RecognizeNull>true</RecognizeNull> </Options> <OutputVariable>request</OutputVariable> <Source>request</Source> </XMLToJSON>
تحقّق ممّا إذا كان الإدخال المحدّد في عنصر
<Source>
لسياسة تحويل XML إلى JSON هو حمولة XML صالحة. إذا كان الإدخال غير صالح أو تم تنسيقه بشكلٍ غير صحيح، هذا هو سبب الخطأ.في مثال سياسة XML إلى JSON الموضّح أعلاه، تم نقل ملف XML غير الصالح التالي إلى سياسة استخراج المتغيّرات من خلال الملف
city.xml
:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode>
في ما يلي نموذج طلب بيانات من واجهة برمجة التطبيقات يوضّح كيفية إرسال الطلب:
curl -v "http://<org>-<env>.apigee.net/v1/testxmltpjson" -H "Content-Type: application/xml" -X POST -d @city.xml
الحمولة بتنسيق XML التي تم تمريرها إلى واجهة برمجة التطبيقات غير صالحة، لأنّ ملف XML لا يحتوي على علامة نهاية لعنصر
<root>
. لذلك تتلقى رمز الخطأ:steps.xml2json.ExecutionFailed
يمكن أن يحدث هذا الخطأ أيضًا إذا تم ضبط عنصر
<Source>
على response، ولكنّ حمولة استجابة XML من خادم الخلفية غير صالحة أو تمّت صياغتها بشكل غير صحيح.
الدقة
تأكَّد من أنّ الإدخال الذي تم تمريره إلى سياسة تحويل XML إلى JSON من خلال عنصر <Source>
صالح وليس بتنسيق غير صحيح.
لحلّ المشكلة المتعلّقة بسياسة تحويل نموذج XML إلى JSON التي تمت مناقشتها أعلاه، يجب إرسال طلب حمولة XML صالح على النحو التالي:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<City>Bengaluru</City>
<Name>Apigee</Name>
<Pincode>560016</Pincode>
</root>
OutputVariableIsNotAvailable
رمز الخطأ
steps.xml2json.OutputVariableIsNotAvailable
نص استجابة الخطأ
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Output variable is not available.", "detail": { "errorcode": "steps.xml2json.OutputVariableIsNotAvailable" } } }
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available.",
"detail": {
"errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
}
}
}
السبب
يحدث هذا الخطأ إذا كان المتغيّر المحدّد في عنصر <Source>
من سياسة تحويل XML إلى JSON من النوع string ولم يتم تعريف العنصر <OutputVariable>
. يكون العنصر <OutputVariable>
إلزاميًا عندما يكون المتغيّر المحدّد في العنصر <Source>
من النوع string
.
التشخيص
حدِّد سياسة تحويل XML إلى JSON التي حدث فيها الخطأ. يمكنك العثور على هذا النص في العنصر
faultstring
الخاص باستجابة الخطأ. على سبيل المثال، فيfaultstring
التالي، اسم السياسة هوConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
في سياسة تحويل XML إلى JSON التي تعذّر إكمالها، تحقّق مما إذا كان الرمز
<OutputVariable>
غير متوفّر.في ما يلي نموذج لسياسة تحويل XML إلى JSON يتضمّن عنصر
<OutputVariable>
غير متوفّر.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON"> <DisplayName>Convert-XMLToJSON</DisplayName> <Properties/> <Format>google</Format> <Source>TrackingNumber</Source> </XMLToJSON>
تحديد نوع المتغيّر المحدَّد في العنصر
<Source>
:- حدِّد موقع الرمز داخل حزمة الخادم الوكيل لواجهة برمجة التطبيقات، حيث تم تحديد المتغيّر أولاً.
- بعد تحديد السياسة التي تم فيها تعريف المتغيّر وملؤه أولاً، عليك تحديد نوع هذا المتغيّر على النحو التالي:
- تحقّق من قيمة سمة type (إذا كانت متوفّرة).
- إذا لم تكن سمة type موجودة، يُعتبر المتغير سلسلة.
- إذا كان نوع المتغيّر هو
string
، هذا هو سبب الخطأ. يمكنك الاطّلاع على المتغيّرات الشائعة وأنواعها في مرجع المتغيّرات.
على سبيل المثال، اطّلِع على متغيّر TrackingNumber في سياسة XML إلى JSON أعلاه. وهو من النوع string. والآن، ضع في الاعتبار سياسة "تعيين الرسالة" التي تُستخدَم لضبط قيمة لمتغيّر يسمى
TrackingNumber
كما هو موضّح أدناه:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber"> <DisplayName>Assign_TrackingNumber</DisplayName> <Properties/> <AssignVariable> <Name>TrackingNumber</Name> <Value><![CDATA[<Code>560075393539898</Code>]]></Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
يُرجى العلم أنّ نوع المتغيّر الذي تم ضبطه من خلال
<AssignVariable>
هو سلسلة. وبالتالي، يكون المتغيّرTrackingNumber
من النوع سلسلة.يُرجى العِلم أنّه يتم الآن استخدام المتغيّر
TrackingNumber
في العنصر<Source>
ضمن سياسة XML To JSON:<Source>TrackingNumber</Source>
ستتلقّى رمز الخطأ بما أنّ السمة
TrackingNumber
من نوع السلسلة و<OutputVariable>
غير متوفّرة في السياسة:steps.xml2json.OutputVariableIsNotAvailable
الدقة
إذا كان المتغيّر المحدّد في العنصر <Source>
ضمن سياسة XMLToJSON هو نوع سلسلة، يكون العنصر <OutputVariable>
إلزاميًا في هذه الحالة.
لتصحيح سياسة XML إلى JSON التي تمت مناقشتها أعلاه، يجب تضمين العنصر <OutputVariable>
كما هو موضح أدناه.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
<DisplayName>Convert-XMLToJSON</DisplayName>
<Properties/>
<Format>google</Format>
<OutputVariable>response</OutputVariable>
<Source>TrackingNumber</Source>
</XMLToJSON>
InCompatibleTypes
رمز الخطأ
steps.xml2json.InCompatibleTypes
نص استجابة الخطأ
{ "fault": { "faultstring": "XMLToJSON[policy_name]: String can not be assigned to message type.", "detail": { "errorcode": "steps.xml2json.InCompatibleTypes" } } }
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type.",
"detail": {
"errorcode": "steps.xml2json.InCompatibleTypes"
}
}
}
السبب
يحدث هذا الخطأ إذا كان نوع المتغيّر المحدّد في عنصر <Source>
وعنصر <OutputVariable>
غير متطابق. يجب أن يتطابق نوع المتغيّرات المضمّنة في العنصر <Source>
مع العنصر <OutputVariable>
.
The valid types are message and string.
التشخيص
حدِّد سياسة تحويل XML إلى JSON التي حدث فيها الخطأ. يمكنك العثور عليه في عنصر
faultstring
من استجابة الخطأ. على سبيل المثال، فيfaultstring
التالي، اسم السياسة هوXMLToJSON_CheckType
:"faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
في سياسة تحويل XML إلى JSON التي تعذّر تطبيقها، لاحِظ القيم المحدّدة في
<OutputVariable>
.في ما يلي نموذج سياسة XMLToJSON يتضمّن عنصر
<OutputVariable>
غير متوفّر.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType"> <DisplayName>XMLToJSON_CheckType</DisplayName> <Properties/> <Format>google</Format> <OutputVariable>request</OutputVariable> <Source>TrackingNumber</Source> </XMLToJSON>
حدِّد نوع المتغيّر المحدّد في عنصرَي
<Source>
و<OutputVariable>
:- حدِّد مكان الرمز ضمن حِزمة "الوكيل لواجهة برمجة التطبيقات"، حيث تمّ تعريف كلّ متغيّر من هذه المتغيّرات أولاً.
- بعد تحديد السياسة التي تم فيها تعريف المتغيّر وملؤه أولاً، عليك تحديد نوع هذا المتغيّر على النحو التالي:
- تحقّق من قيمة سمة type (إذا كانت متوفّرة).
- إذا لم تكن سمة type متوفّرة، يُعتبَر المتغيّر سلسلة.
- إذا كان نوع المتغيّر المحدّد في
<Source>
هوstring
بينما كان نوع<OutputVariable>
هو message أو العكس، هذا هو سبب الخطأ. يمكنك التعرّف على المتغيّرات الشائعة وأنواعها في مرجع المتغيّرات.
على سبيل المثال، يمكنك اتّباع سياسة "تعيين رسالة" تُستخدَم لضبط قيمة لمتغيّر يسمى
TrackingNumber
كما هو موضّح أدناه:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber"> <DisplayName>Assign_TrackingNumber</DisplayName> <Properties/> <AssignVariable> <Name>TrackingNumber</Name> <Value><![CDATA[<Code>560075393539898</Code>]]></Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
يُرجى العلم أنّ نوع المتغيّر الذي تم ضبطه من خلال
<AssignVariable>
هو سلسلة. وبالتالي، يكون المتغيّرTrackingNumber
من النوع سلسلة.يُرجى العِلم أنّه يتم حاليًا استخدام المتغيّر
TrackingNumber
في العنصر<Source>
ضمن سياسة XMLToJSON:<Source>TrackingNumber</Source>
وبالمثل، تذكَّر أنّه يتم استخدام المتغيّر
request
في عنصر<OutputVariable>
ضمن سياسة تحويل XML إلى JSON:<OutputVariable>request</OutputVariable>
بما أنّ
TrackingNumber
من النوعstring
بينما المتغيّرresponse
من النوعmessage
، فإنّه نوعان غير متوافقين، ولذلك يظهر لك رمز الخطأ:steps.xml2json.InCompatibleTypes
يمكن أن يحدث الخطأ أعلاه أيضًا إذا كان المتغيّر في العنصر
<Source>
من النوعmessage
ولكن المتغيّر في العنصر<OutputVariable>
من النوع سلسلة.
الدقة
تأكَّد من أنّ نوع المتغيّر المحدّد في عنصر <Source>
وعنصر <OutputVariable>
هو نفسه دائمًا. يجب أن يتطابق نوع المتغيّرات المضمّنة في العنصر <Source>
مع العنصر <OutputVariable>
.
لتصحيح سياسة تحويل XML إلى JSON التي تمت مناقشتها أعلاه، يمكنك تحديد متغيّر آخر TrackingNumber_output
من النوع string
باستخدام سياسة تعيين الرسالة واستخدام هذا المتغيّر في عنصر <OutputVariable>
من سياسة تحويل XML إلى JSON.
سياسة تعيين الرسائل المعدَّلة:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
<DisplayName>Assign_TrackingNumber</DisplayName>
<Properties/>
<AssignVariable>
<Name>TrackingNumber</Name>
<Value><![CDATA[<Code>560098</Code>]]></Value>
<Ref/>
</AssignVariable>
<AssignVariable>
<Name>TrackingNumber_output</Name>
<Ref/>
</AssignVariable>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>
سياسة XMLToJSON المعدَّلة:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
<DisplayName>XMLToJSON_CheckType</DisplayName>
<Properties/>
<Format>google</Format>
<OutputVariable>TrackingNumber_output</OutputVariable>
<Source>TrackingNumber</Source>
</XMLToJSON>
InvalidSourceType
رمز الخطأ
steps.xml2json.InvalidSourceType
نص استجابة الخطأ
{ "fault": { "faultstring": "XMLToJSON[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].", "detail": { "errorcode": "steps.xml2json.InvalidSourceType" } } }
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string].",
"detail": {
"errorcode": "steps.xml2json.InvalidSourceType"
}
}
}
السبب
يحدث هذا الخطأ إذا كان نوع المتغيّر المستخدَم لتحديد عنصر <Source>
غير صالح.إنّ الأنواع الصالحة للمتغيّر هي message
وstring
.
التشخيص
حدِّد نوع المصدر غير الصالح المستخدَم في سياسة تحويل XML إلى JSON. يمكنك العثور على هذه المعلومات في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، النوع غير الصالح هو عدد صحيح.
"faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
افحص جميع سياسات XML إلى JSON في خادم وكيل واجهة برمجة التطبيقات المحدّد الذي حدث فيه الخطأ. في سياسة تحويل XML إلى JSON التي تعذّر تنفيذها، لاحِظ اسم المتغيّر المحدّد في
<Source>
.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType"> <DisplayName>XMLToJSON_CheckType</DisplayName> <Properties/> <Format>google</Format> <OutputVariable>response</OutputVariable> <Source>BookCode</Source> </XMLToJSON>
حدِّد نوع المتغيّر المحدّد في عنصر
<Source>
:- حدِّد مكان الرمز ضمن حِزمة "الوكيل لواجهة برمجة التطبيقات"، حيث تم تعريف هذا المتغيّر أولاً.
- بعد تحديد السياسة التي تم فيها تعريف المتغيّر وملؤه أولاً، عليك تحديد نوع هذا المتغيّر على النحو التالي:
- تحقّق من قيمة سمة type (إذا كانت متوفّرة).
- إذا لم تكن سمة type متوفّرة، يُعتبَر المتغيّر سلسلة.
- إذا لم يكن نوع المتغيّر المحدّد في
<Source>
هو نوعmessage
أوstring
، هذا هو سبب الخطأ. يمكنك الاطّلاع على المتغيّرات الشائعة وأنواعها في مرجع المتغيّرات.
على سبيل المثال، نأخذ سياسة ExtractVariables التي تُستخدَم لاستخراج القيمة من الحمولة البرمجية بتنسيق XML وضبط القيمة على المتغيّر
BookCode
لتكون من النوعinteger
كما هو موضّح أدناه:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract_BookCode"> <DisplayName>Extract_BookCode</DisplayName> <Properties/> <Source>request</Source> <XMLPayload stopPayloadProcessing="false"> <Variable name="BookCode" type="integer"> <XPath>/root/BookCode</XPath> </Variable> </XMLPayload> </ExtractVariables>
تذكَّر الآن أنّه يتم استخدام المتغيّر
BookCode
في عنصر<Source>
ضمن سياسة تحويل XML إلى JSON:<Source>BookCode</Source>
بما أنّ نوع هذا المتغيّر هو
Integer
، وهو نوع غير صالح من أنواع<Source>
، يتعذّر تنفيذ الخادم الوكيل لواجهة برمجة التطبيقات مع ظهور الخطأ:steps.xml2json.InvalidSourceType
الدقة
تأكَّد من أنّ نوع المتغيّر المستخدَم لتحديد عنصر <Source>
صالح. نوعا <Source>
الصالحان هما message
وstring
.
لتجنّب ظهور الخطأ أعلاه في سياسة XML To JSON، يمكنك استخدام المتغيّر request
من النوع message
أو أي سلسلة أخرى تمثّل حمولة XML صالحة.