Pemecahan masalah error runtime kebijakan JavaCallout

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

ini.

ExecutionError

Kode Error

steps.javacallout.ExecutionError

Isi respons error

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

Penyebab

Error ini terjadi jika kode Java menampilkan pengecualian atau menampilkan null selama eksekusi kebijakan Javacallout.

Diagnosis

  1. Mulai sesi rekaman aktivitas untuk merekam error dan mengidentifikasi kebijakan JavaCallout yang gagal.

  2. Periksa kebijakan JavaCallout dan resource yang digunakan. Pada contoh di atas, kebijakan JavaInfo menggunakan resource bernama hello.jar, seperti yang ditunjukkan di bawah ini:

    <JavaCallout name="hello-java">
       <ClassName>com.apigeesample.HelloJava</ClassName>
       <ResourceURL>java://hello.jar</ResourceURL>
    </JavaCallout>
    
    
  3. Ambil dan simpan pengecualian Java dalam variabel alur dengan mengubah kode sumber, seperti yang dijelaskan dalam Menangani error di Info Java.

  4. Kompilasi dan ganti resource yang terpengaruh (file JAR) dengan artefak Java yang diupdate.

  5. Deploy Proxy API sebagai revisi baru dan lakukan panggilan API.

  6. Mulai sesi rekaman aktivitas lain.

  7. Perhatikan bahwa stack trace tersedia dalam variabel JAVA_STACKTRACE. Stack trace mencantumkan pengecualian sebenarnya serta file sumber dan nomor baris Java tempat error ditampilkan.

  8. Gunakan informasi ini untuk memperbaiki masalah dalam kode Java.

  9. Dalam contoh ini, kebijakan Javacallout gagal karena ArithmeticException (pembagian dengan nol) dalam file JavaError.java pada baris #25.

Resolusi

  1. Bergantung pada pengecualian yang ditampilkan, perbaiki masalah di file sumber Java yang relevan. a. Pada contoh yang ditampilkan di atas, masalah disebabkan oleh error aritmetika (pembagian dengan nol). Membuka file sumber dan nomor baris tertentu yang ditunjukkan oleh pelacakan tumpukan.

    b. Karena Anda tidak dapat melakukan pembagian dengan nol, hapus blok else yang berisi baris kode yang salah untuk menyelesaikan masalah.

  2. Mengganti file JAR yang relevan yang berisi file yang diubah di tingkat yang sesuai (proxy, lingkungan, atau organisasi API), tempat file tersebut sebelumnya ada.

  3. Menyimpan dan men-deploy proxy API sebagai revisi baru.