Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
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, gdy kod Java zgłasza wyjątek lub zwraca wartość null podczas wykonywania zasady JavaCallout.
Diagnostyka
Rozpocznij sesję śledzenia, aby zarejestrować błąd i określić, która zasada JavaCallout nie działa.

Sprawdź zasady JavaCallout i używany zasób. W przykładzie powyżej 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 sekcji Obsługa błędów w wywołaniu Java.
Skompiluj i zastąp odpowiedni zasób (plik JAR) zaktualizowanym artefaktem Java.
Wdróż proxy interfejsu API jako nową wersję i wywołaj interfejs API.
Rozpocznij kolejną sesję śledzenia.

Zwróć uwagę, że w zmiennej
JAVA_STACKTRACEdostępny jest zrzut stosu. Zrzut stosu zawiera rzeczywisty wyjątek oraz plik źródłowy Java i numer wiersza, w którym zgłaszany jest błąd.Wykorzystaj te informacje, aby rozwiązać problem w kodzie Java.
W tym przykładzie zasady JavaCallout nie zostały wykonane z powodu wyjątku ArithmeticException (dzielenie przez zero) w pliku
JavaError.javaw 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 był spowodowany błędem arytmetycznym (dzielenie przez zero). Otwórz konkretny plik źródłowy i wiersz wskazany przez zrzut stosu.

b. Ponieważ nie można dzielić przez zero, aby rozwiązać problem, usuń cały blok else zawierający wadliwą linię kodu.
Zastąp odpowiedni plik JAR zawierający zmodyfikowane pliki na odpowiednim poziomie (proxy interfejsu API, środowisko lub organizacja), w którym wcześniej się znajdował.
Zapisz i wdróż proxy interfejsu API jako nową wersję.