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, Java kodu bir istisna atarsa veya JavaCall politikası yürütülürken null değerini döndürürse ortaya çıkar.

Teşhis

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

  2. JavaScript politikasını ve kullanılan kaynağı inceleyin. Yukarıdaki örnekte Java callout 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. Java açıklama metnindeki hataları işleme bölümünde açıklandığı gibi, kaynak kodunu değiştirerek Java istisnasını bir akış değişkeninde yakalayın ve 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ı yapın.

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

  7. JAVA_STACKTRACE değişkeninde bir yığın izlemenin (stack trace) mevcut olduğuna dikkat edin. Yığın izleme, gerçek istisnayı ve hatanın bildirildiği 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 JavaCall politikası, 25 numaralı satırdaki JavaError.java dosyasındaki bir ArithmeticException (sıfıra bölme) nedeniyle başarısız olmuştur.

Çözünürlük

  1. Atılan istisnaya bağlı olarak sorunu ilgili Java kaynak dosyalarında düzeltin. a. Yukarıda gösterilen örnekte sorunun nedeni aritmetik bir hatadır (sıfıra bölme). Yığın izlemede gösterilen ilgili kaynak dosyaya ve satır numarasına gidin.

    b. Sıfıra bölme işlemi gerçekleştiremeyeceğinizden, sorunu çözmek için hatalı kod satırını içeren diğer tüm blokları kaldırın.

  2. Değiştirilen dosyaları içeren ilgili JAR dosyasını, daha önce var olduğu yerde (API proxy'si, ortam veya kuruluş) değiştirin.

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