أنت تعرض مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
ExecutionError
رمز الخطأ
steps.javacallout.ExecutionError
نص الاستجابة للخطأ
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
السبب
يحدث هذا الخطأ إذا عرضت أداة Java استثناءً أو عرضت null أثناء تنفيذ سياسة JavaCallout.
التشخيص
ابدأ جلسة تتبُّع لتسجيل الخطأ وحدِّد سياسة JavaCallout التي تعذّرت معالجتها.
راجِع سياسة JavaCallout والمورد المستخدَم. في المثال أعلاه، تستخدم سياسة JavaCallout موردًا اسمه
hello.jar
كما هو موضّح أدناه:<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
احصل على استثناء Java واحتفِظ به في متغيّر تدفق عن طريق تعديل رمز المصدر، كما هو موضّح في معالجة الأخطاء في وسيلة شرح Java.
عليك تجميع المورد المتأثر (ملف JAR) واستبداله بعنصر Java المحدَّث.
انشر الخادم الوكيل لواجهة برمجة التطبيقات كنسخة جديدة وإجراء طلب بيانات من واجهة برمجة التطبيقات.
ابدأ جلسة تتبُّع أخرى.
يُرجى العلم أنّه يتوفّر تتبع تسلسل استدعاء الدوالّ في المتغيّر
JAVA_STACKTRACE
. يسرد تتبُّع تسلسل استدعاء الدوال البرمجية الاستثناء الفعلي وملف مصدر Java ورقم السطر الذي يظهر عنده الخطأ.يمكنك استخدام هذه المعلومات لحلّ المشكلة في رمز Java.
في هذا المثال، تعذّرت سياسة JavaCallout بسبب ArithmeticException (القسمة على صفر) في الملف
JavaError.java
في السطر رقم 25.
الدقة
بناءً على الاستثناء الذي تم طرحه، يمكنك حل المشكلة في ملفات مصدر Java ذات الصلة. a. في المثال الوارد أعلاه، نتج المشكلة عن خطأ حسابي (القسمة على صفر). انتقِل إلى ملف المصدر المحدَّد ورقم السطر المشار إليه في تقرير تتبُّع تسلسل استدعاء الدوال البرمجية.
ب- بما أنه لا يمكنك إجراء القسمة على صفر، يمكنك إزالة الجزء الكامل الآخر الذي يحتوي على سطر الرمز الذي يتضمّن عيوبًا لحل المشكلة.
يجب استبدال ملف JAR ذي الصلة الذي يحتوي على الملفات المعدَّلة بالمستوى المناسب (الخادم الوكيل لواجهة برمجة التطبيقات أو البيئة أو المؤسسة)، حيثما كان متاحًا سابقًا.
احفظ الخادم الوكيل لواجهة برمجة التطبيقات وانشره كنسخة جديدة.