تحديد وحلّ المشاكل المتعلقة بوقت تشغيل سياسة JavaCallout

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

ExecutionError

رمز الخطأ

steps.javacallout.ExecutionError

نص رد الخطأ

{
  "fault": {
    "faultstring": "Execution returned an error result",
    "detail": {
      "errorcode": "flow.execution.ExecutionReturnedFailure"
    }
  }
}

السبب

يحدث هذا الخطأ إذا كان رمز Java يعرض استثناءً أو يعرض القيمة null أثناء تنفيذ سياسة JavaCallout.

التشخيص

  1. ابدأ جلسة تتبُّع لتسجيل الخطأ وتحديد سياسة JavaCallout التي تعذّر تنفيذها.

  2. افحص سياسة JavaCallout والمورد المستخدَم. في المثال أعلاه، تستخدم سياسة JavaCallout موردًا باسم hello.jar، كما هو موضّح أدناه:

    <JavaCallout name="hello-java">
       <ClassName>com.apigeesample.HelloJava</ClassName>
       <ResourceURL>java://hello.jar</ResourceURL>
    </JavaCallout>
    
    
  3. يمكنك تسجيل استثناء Java وتخزينه في متغيّر تدفّق من خلال تعديل رمز المصدر، كما هو موضّح في التعامل مع الأخطاء في Java Callout.

  4. جمِّع المورد المتأثر (ملف JAR) واستبدِله بعنصر Java المعدَّل.

  5. نفِّذ API Proxy كنسخة جديدة وأجرِ طلب البيانات من واجهة برمجة التطبيقات.

  6. ابدأ جلسة تتبُّع أخرى.

  7. لاحظ أنّ معلومات تتبُّع تسلسل استدعاء الدوال البرمجية متاحة في المتغيّر JAVA_STACKTRACE. يسرد تتبُّع تسلسل استدعاء الدوال البرمجية الاستثناء الفعلي وملف مصدر Java ورقم السطر الذي يتم فيه عرض الخطأ.

  8. استخدِم هذه المعلومات لحلّ المشكلة في رمز Java.

  9. في هذا المثال، تعذّر تنفيذ سياسة JavaCallout بسبب ArithmeticException (القسمة على صفر) في الملف JavaError.java في السطر رقم 25.

الدقة

  1. استنادًا إلى الاستثناء الذي تم طرحه، عليك حلّ المشكلة في ملفات مصدر Java ذات الصلة. أ. في المثال الموضّح أعلاه، كان سبب المشكلة هو خطأ حسابي (القسمة على صفر). انتقِل إلى ملف المصدر ورقم السطر المحدّدَين في تتبُّع تسلسل استدعاء الدوال البرمجية.

    ب. بما أنّه لا يمكنك إجراء عملية القسمة على صفر، عليك إزالة كتلة else الكاملة التي تحتوي على سطر الرمز البرمجي الخاطئ لحلّ المشكلة.

  2. استبدِل ملف JAR ذي الصلة الذي يحتوي على الملفات المعدَّلة على المستوى المناسب (خادم وكيل لواجهة برمجة التطبيقات أو بيئة أو مؤسسة)، حيث كان متوفّرًا سابقًا.

  3. احفظ خادم وكيل واجهة برمجة التطبيقات ونشِّره كمراجعة جديدة.