JavaScript politikası çalışma zamanı hatasıyla ilgili sorunları giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

ExecutionError

Hata Kodu

steps.javacallout.ExecutionError

Hata yanıtı gövdesi

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

Neden

Bu hata, bir JavaCallout politikası yürütülürken Java kodu bir istisna oluşturursa veya null değerini döndürürse oluşur.

Teşhis

  1. Hatayı yakalamak ve hangi JavaCallout politikasının başarısız olduğunu belirlemek için izleme oturumu başlatın.

  2. JavaCallout politikası ve kullanılan kaynağı inceleyin. Yukarıdaki örnekte, JavaCallout politikası, aşağıda gösterildiği gibi hello.jar adlı bir kaynak kullanır:

    <JavaCallout name="hello-java">
       <ClassName>com.apigeesample.HelloJava</ClassName>
       <ResourceURL>java://hello.jar</ResourceURL>
    </JavaCallout>
    
    
  3. Kaynak kodu Handling errors in a Java Callout (Java Callout'ta hataları işleme) bölümünde açıklandığı şekilde değiştirerek Java istisnasını bir akış değişkeninde yakalayıp saklayın.

  4. Etkilenen kaynağı (JAR dosyası) derleyin ve güncellenmiş Java yapısıyla değiştirin.

  5. API proxy'sini yeni bir düzeltme olarak dağıtın ve API çağrısını yapın.

  6. Başka bir izleme oturumu başlatın.

  7. JAVA_STACKTRACE değişkeninde yığın izlemenin (stack trace) bulunduğunu unutmayın. Yığın izleme, gerçek istisnayı ve hatanın oluşturulduğu Java kaynak dosyasını ve satır numarasını listeler.

  8. Java kodundaki sorunu düzeltmek için bu bilgileri kullanın.

  9. Bu örnekte, JavaCallout politikası, JavaError.java dosyasında 25. satırda ArithmeticException (sıfıra bölme) nedeniyle başarısız oldu.

Çözünürlük

  1. Oluşan istisnaya bağlı olarak, sorunu ilgili Java kaynak dosyalarında düzeltin. a. Yukarıdaki örnekte sorun, aritmetik bir hatadan (sıfıra bölme) kaynaklanmıştır. Yığın izi tarafından belirtilen belirli kaynak dosyaya ve satır numarasına gidin.

    b. Sıfıra bölme işlemi yapılamadığından sorunu çözmek için hatalı kod satırını içeren else bloğunun tamamını kaldırın.

  2. Değiştirilen dosyaları içeren ilgili JAR dosyasını, daha önce bulunduğu uygun düzeyde (API proxy'si, ortam veya kuruluş) değiştirin.

  3. API proxy'sini yeni bir düzeltme olarak kaydedin ve dağıtın.