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

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

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 Java açıklama metni politikasının yürütülmesi sırasında istisna atarsa veya null döndürürse oluşur.

Teşhis

  1. Hatayı yakalamak ve hangi JavaAçıklama 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, JavaCallout politikası aşağıdaki 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ğrılarındaki 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 revizyon 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 bir yığın izleme olduğunu unutmayın. Yığın izlemede, gerçek istisna ve hatanın atıldığı Java kaynak dosyası ile satır numarası listelenir.

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

  9. Bu örnekte, JavaError.java dosyasındaki 25. satırda bir ArithmeticException (sıfıra bölme) nedeniyle Java açıklama metni politikası başarısız oldu.

Çözünürlük

  1. Atılan istisnaya bağlı olarak, ilgili Java kaynak dosyalarında sorunu düzeltin. a. Yukarıda gösterilen örnekte sorun, aritmetik bir hatadan (sıfıra bölme) kaynaklanıyordu. Yığın izleme tarafından belirtilen belirli kaynak dosyaya ve satır numarasına gidin.

    b. Sıfıra bölme işlemi yapamazsınız. Bu nedenle, 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 revizyon olarak kaydedip dağıtın.