Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
ExecutionError
Mã lỗi
steps.javacallout.ExecutionError
Nội dung phản hồi lỗi
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
Nguyên nhân
Lỗi này xảy ra nếu mã Java gửi một ngoại lệ hoặc trả về giá trị null trong quá trình thực thi chính sách JavaCallout.
Chẩn đoán
Bắt đầu một phiên theo dõi để ghi lại lỗi và xác định chính sách JavaCallout nào không thành công.

Kiểm tra chính sách JavaCallout và tài nguyên được dùng. Trong ví dụ trên, chính sách JavaCallout sử dụng một tài nguyên có tên là
hello.jar, như minh hoạ dưới đây:<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>Ghi lại và lưu trữ ngoại lệ Java trong một biến luồng bằng cách sửa đổi mã nguồn, như mô tả trong phần Xử lý lỗi trong lệnh gọi Java.
Biên dịch và thay thế tài nguyên bị ảnh hưởng (tệp JAR) bằng cấu phần phần mềm Java đã cập nhật.
Triển khai API Proxy dưới dạng một bản sửa đổi mới và thực hiện lệnh gọi API.
Bắt đầu một phiên theo dõi khác.

Xin lưu ý rằng dấu vết ngăn xếp có trong biến
JAVA_STACKTRACE. Dấu vết ngăn xếp liệt kê ngoại lệ thực tế, tệp nguồn Java và số dòng mà lỗi đang được gửi.Hãy dùng thông tin này để khắc phục vấn đề trong mã Java.
Trong ví dụ này, chính sách JavaCallout không thành công do ArithmeticException (phép chia cho 0) trong tệp
JavaError.javaở dòng số 25.
Độ phân giải
Tuỳ thuộc vào ngoại lệ được đưa ra, hãy khắc phục vấn đề trong(các) tệp nguồn Java có liên quan. a. Trong ví dụ minh hoạ ở trên, vấn đề là do lỗi số học (phép chia cho 0). Chuyển đến tệp nguồn và số dòng cụ thể do dấu vết ngăn xếp chỉ ra.

b. Vì bạn không thể thực hiện phép chia cho 0, hãy xoá toàn bộ khối else chứa dòng mã bị lỗi để giải quyết vấn đề.
Thay thế tệp JAR có liên quan chứa các tệp đã sửa đổi ở cấp độ thích hợp (proxy API, môi trường hoặc tổ chức), nơi tệp đó từng tồn tại.
Lưu và triển khai API proxy dưới dạng một bản sửa đổi mới.