درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
ExecutionError
کد خطا
steps.javacallout.ExecutionError
متن پاسخ خطا
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
علت
این خطا زمانی رخ میدهد که کد Java درطول اجرای خطمشی JavaCallout استثنایی ایجاد کند یا null برگرداند.
تشخیص
جلسه ردیابی را شروع کنید تا خطا را ضبط کنید و مشخص کنید کدام خطمشی JavaCallout ناموفق بوده است.

خطمشی JavaCallout و منبع استفادهشده را بررسی کنید. در مثال بالا، خطمشی JavaCallout از منبعی بهنام
hello.jarاستفاده میکند، همانطور که در زیر نشان داده شده است:<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>استثنای Java را با اصلاح کد منبع، همانطور که در مدیریت خطاها در «تماس با Java» توضیح داده شده است، در متغیر جاریسازی ضبط و ذخیره کنید.
منبع تحتتأثیر قرارگرفته (فایل JAR) را با عنصر Java بهروزشده کامپایل و جایگزین کنید.
«پراکسی API» را بهعنوان نسخه جدیدی مستقر کنید و فراخوانی API را انجام دهید.
جلسه ردیابی دیگری شروع کنید.

توجه داشته باشید که ردیابی پشته در متغیر
JAVA_STACKTRACEدردسترس است. ردیابی پشته استثنای واقعی و فایل منبع جاوا و شماره خطی را که خطا در آن رخ میدهد فهرست میکند.از این اطلاعات برای رفع مشکل در کد Java استفاده کنید.
در این مثال، خطمشی JavaCallout بهدلیل ArithmeticException (تقسیم بر صفر) در فایل
JavaError.javaدر خط ۲۵ ناموفق بود.
وضوح
بسته به استثنایی که ایجاد شده است، مشکل را در فایل(های) منبع Java مربوطه برطرف کنید. الف. در مثال نشاندادهشده در بالا، مشکل ناشی از خطای محاسباتی (تقسیم بر صفر) بوده است. به فایل منبع خاص و شماره خط نشاندادهشده توسط ردیابی پشته بروید.

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