أنت تعرض مستندات 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 وحدِّد المتغيّر المحدّد. على سبيل المثال، تحتوي سياسة XML التالية إلى JSON على عنصر<Source>
للطلب:<?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 To 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 إلى JSON:<Source>TrackingNumber</Source>
بما أنّ
TrackingNumber
من النوع string (سلسلة) و<OutputVariable>
غير متوفّر في السياسة، يظهر لك رمز الخطأ:steps.xml2json.OutputVariableIsNotAvailable
الدقة
تأكَّد من أنّ المتغيّر المحدّد في عنصر <Source>
من سياسة XMLToJSON من النوع string، وأنّ عنصر <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 To 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 To 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 To JSON:<Source>BookCode</Source>
بما أنّ نوع هذا المتغيّر هو
Integer
، وهو نوع غير صالح من أنواع<Source>
، يتعذّر تنفيذ الخادم الوكيل لواجهة برمجة التطبيقات مع ظهور الخطأ:steps.xml2json.InvalidSourceType
الدقة
تأكَّد من أنّ نوع المتغيّر المستخدَم لتحديد عنصر <Source>
صالح. النوعان الصالحان من <Source>
هما message
وstring
.
لتجنّب ظهور الخطأ أعلاه في سياسة XML To JSON، يمكنك استخدام المتغيّر request
من النوع message
أو أي سلسلة أخرى تمثّل حمولة XML صالحة.