عیب یابی خطای زمان اجرا خط مشی JavaCallout

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

خطای اجرا

کد خطا

steps.javacallout.ExecutionError

بدنه پاسخ به خطا

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

علت

این خطا در صورتی رخ می دهد که کد جاوا در طول اجرای یک خط مشی JavaCallout یک استثنا ایجاد کند یا null را برگرداند.

تشخیص

  1. یک جلسه ردیابی را برای ضبط خطا و شناسایی خط مشی JavaCallout شروع کنید.

  2. خط مشی JavaCallout و منبعی که استفاده می شود را بررسی کنید. در مثال بالا، سیاست JavaCallout از منبعی به نام hello.jar استفاده می‌کند، همانطور که در زیر نشان داده شده است:

    <JavaCallout name="hello-java">
       <ClassName>com.apigeesample.HelloJava</ClassName>
       <ResourceURL>java://hello.jar</ResourceURL>
    </JavaCallout>
    
    
  3. همانطور که در Handling errors in a Java Callout توضیح داده شده است، با تغییر کد منبع، استثنای جاوا را در یک متغیر جریان ذخیره کنید.

  4. منبع آسیب دیده (فایل JAR) را با مصنوع جاوا به روز شده کامپایل و جایگزین کنید.

  5. پروکسی API را به عنوان یک ویرایش جدید مستقر کنید و تماس API را برقرار کنید.

  6. یک جلسه ردیابی دیگر را شروع کنید.

  7. توجه داشته باشید که یک ردیابی پشته در متغیر JAVA_STACKTRACE موجود است. stack trace استثنای واقعی و فایل منبع جاوا و شماره خطی را که خطا در آن ارسال می‌شود فهرست می‌کند.

  8. از این اطلاعات برای رفع مشکل در کد جاوا استفاده کنید.

  9. در این مثال، خط مشی JavaCallout به دلیل ArithmeticException (تقسیم بر صفر) در فایل JavaError.java در خط #25 شکست خورد.

قطعنامه

  1. بسته به استثنا پرتاب شده، مشکل را در فایل(های منبع جاوا) مربوطه برطرف کنید. الف در مثالی که در بالا نشان داده شده است، مشکل ناشی از یک خطای حسابی (تقسیم بر صفر) است. به فایل منبع خاص و شماره خط مشخص شده توسط stack trace بروید.

    ب از آنجایی که نمی‌توانید تقسیم بر صفر را انجام دهید، بلوک else حاوی خط کد معیوب را حذف کنید تا مشکل برطرف شود.

  2. فایل JAR مربوطه حاوی فایل های اصلاح شده را در سطح مناسب (پراکسی API، محیط یا سازمان)، جایی که قبلا وجود داشته است، جایگزین کنید.

  3. پروکسی API را به عنوان یک ویرایش جدید ذخیره و مستقر کنید.