أنت تطّلع على مستندات 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 المصدر ذات الصلة. أ. في المثال الوارد أعلاه، نتج المشكلة عن خطأ حسابي (القسمة على صفر). انتقِل إلى ملف المصدر ورقم السطر المحدّدَين في تتبع تسلسل استدعاء الدوال البرمجية.
ب- بما أنّه لا يمكنك إجراء عملية القسمة على الصفر، عليك إزالة مجموعة else الكاملة التي تحتوي على سطر الرمز البرمجي الذي يتضمّن خطأً لحلّ المشكلة.
يجب استبدال ملف JAR ذي الصلة الذي يحتوي على الملفات المعدَّلة بالمستوى المناسب (الخادم الوكيل لواجهة برمجة التطبيقات أو البيئة أو المؤسسة)، حيثما كان متاحًا سابقًا.
احفظ الخادم الوكيل لواجهة برمجة التطبيقات وانشره كنسخة جديدة.