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
Hatayı yakalamak ve hangi JavaAçıklama politikasının başarısız olduğunu belirlemek için bir izleme oturumu başlatın.
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>
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.
Etkilenen kaynağı (JAR dosyası) derleyin ve güncellenmiş Java yapısıyla değiştirin.
API Proxy'sini yeni bir revizyon olarak dağıtın ve API çağrısını yapın.
Başka bir izleme oturumu başlatın.
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.Java kodundaki sorunu düzeltmek için bu bilgileri kullanın.
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
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.
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.
API proxy'sini yeni bir revizyon olarak kaydedip dağıtın.