คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
ExecutionError
รหัสข้อผิดพลาด
steps.javacallout.ExecutionError
เนื้อหาการตอบกลับข้อผิดพลาด
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากโค้ด Java แสดงข้อยกเว้นหรือแสดงผลเป็น null ระหว่างการเรียกใช้นโยบาย JavaCallout
การวินิจฉัย
เริ่มเซสชันการติดตามเพื่อบันทึกข้อผิดพลาดและระบุนโยบาย JavaScript ที่ล้มเหลว
อ่านนโยบาย Javaข้อความไฮไลต์ และแหล่งข้อมูลที่ใช้ ในตัวอย่างข้างต้น นโยบาย JavaCall ใช้ทรัพยากรชื่อ
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 และหมายเลขบรรทัดที่แสดงข้อผิดพลาดโปรดใช้ข้อมูลนี้เพื่อแก้ไขปัญหาในโค้ด Java
ในตัวอย่างนี้ นโยบาย Javaคำขอราคาเสนอ ล้มเหลวเนื่องจาก ArithmeticException (หารด้วย 0) ในไฟล์
JavaError.java
ที่บรรทัดที่ 25
ความละเอียด
แก้ไขปัญหาในไฟล์ซอร์สโค้ด Java ที่เกี่ยวข้อง โดยขึ้นอยู่กับข้อยกเว้นที่แสดงขึ้น ก. ในตัวอย่างที่แสดงด้านบน ปัญหาเกิดจากข้อผิดพลาดทางคณิตศาสตร์ (การหารด้วย 0) ไปยังไฟล์ต้นฉบับและหมายเลขบรรทัดที่ระบุโดยสแต็กเทรซ
ข. เนื่องจากคุณไม่สามารถทำการหารด้วย 0 ได้ ให้นำบล็อก "อื่นๆ ทั้งหมด" ที่มีบรรทัดโค้ดที่มีข้อผิดพลาดออกเพื่อแก้ไขปัญหา
แทนที่ไฟล์ JAR ที่เกี่ยวข้องซึ่งมีไฟล์ที่แก้ไขในระดับที่เหมาะสม (พร็อกซี API, สภาพแวดล้อม หรือองค์กร) ที่มีอยู่ก่อนหน้านี้
บันทึกและใช้พร็อกซี API เป็นเวอร์ชันใหม่