Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
ExecutionError
Kod błędu
steps.javacallout.ExecutionError
Treść odpowiedzi na błąd
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
Przyczyna
Ten błąd występuje, jeśli kod w Javie zgłosi wyjątek lub zwróci wartość null podczas wykonywania zasady JavaCallout.
Diagnostyka
Rozpocznij sesję śledzenia, aby przechwycić błąd i określić zasadę Javaobjaśnienia, która zakończyła się niepowodzeniem.
Zapoznaj się z zasadami dotyczącymi JavaCallout i wykorzystywanym zasobem. W powyższym przykładzie zasada JavaCallout używa zasobu o nazwie
hello.jar
, jak pokazano poniżej:<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
Przechwyć i zapisz wyjątek Java w zmiennej przepływu, modyfikując kod źródłowy zgodnie z opisem w artykule Przetwarzanie błędów w ramach calloutu Java.
Skompiluj i zastąp odpowiedni zasób (plik JAR) zaktualizowanym artefaktem Java.
Wdrożyć serwer proxy interfejsu API jako nową wersję i wywołać interfejs API.
Rozpocznij kolejną sesję śledzenia.
Zwróć uwagę, że w zmiennej
JAVA_STACKTRACE
jest dostępny zrzut stosu. Ślad stosu zawiera listę wyjątków oraz plik źródłowy Java i numer wiersza, w którym wystąpił błąd.Skorzystaj z tych informacji, aby rozwiązać problem w kodzie Javy.
W tym przykładzie zasada JavaCallout nie powiodła się z powodu wyjątku ArithmeticException (dziel przez zero) w pliku
JavaError.java
w wierszu 25.
Rozdzielczość
W zależności od zgłoszonego wyjątku rozwiąż problem w odpowiednich plikach źródłowych Javy. a. W przykładzie powyżej problem został spowodowany błędem arytmetycznym (podziałem przez zero). Otwórz określony plik źródłowy i numer wiersza wskazane w zrzucie stosu.
b. Nie można dzielić przez 0, dlatego aby rozwiązać problem, należy usunąć cały inny blok zawierający nieprawidłowy wiersz kodu.
Zastąp odpowiedni plik JAR zawierający zmodyfikowane pliki na odpowiednim poziomie (serwer proxy interfejsu API, środowisko lub organizacja), tam gdzie wcześniej istniały.
Zapisz i wdróż proxy interfejsu API jako nową wersję.