Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Ошибка выполнения
Код ошибки
steps.javacallout.ExecutionError
Тело ответа об ошибке
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
Причина
Эта ошибка возникает, если код Java генерирует исключение или возвращает значение NULL во время выполнения политики JavaCallout .
Диагностика
Запустите сеанс трассировки, чтобы зафиксировать ошибку и определить, какая политика JavaCallout не удалась.
Изучите политику JavaCallout и используемый ресурс. В приведенном выше примере политика JavaCallout использует ресурс с именем
hello.jar
, как показано ниже:<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
Захватите и сохраните исключение Java в переменной потока, изменив исходный код, как описано в разделе Обработка ошибок в вызове Java .
Скомпилируйте и замените затронутый ресурс (файл JAR) обновленным артефактом Java.
Разверните прокси-сервер API как новую версию и выполните вызов API.
Запустите еще один сеанс трассировки.
Обратите внимание, что трассировка стека доступна в переменной
JAVA_STACKTRACE
. Трассировка стека перечисляет фактическое исключение, исходный файл Java и номер строки, в которой выдается ошибка.Используйте эту информацию, чтобы устранить проблему в коде Java.
В этом примере политика JavaCallout завершилась неудачей из-за исключения ArithmeticException (деление на ноль) в файле
JavaError.java
в строке № 25.
Разрешение
В зависимости от возникшего исключения исправьте проблему в соответствующих исходных файлах Java. а. В приведенном выше примере проблема была вызвана арифметической ошибкой (деление на ноль). Перейдите к конкретному исходному файлу и номеру строки, указанному в трассировке стека.
б. Поскольку вы не можете выполнить деление на ноль, удалите весь блок else, содержащий ошибочную строку кода, чтобы решить проблему.
Замените соответствующий JAR-файл, содержащий измененные файлы на соответствующем уровне (прокси-сервер API, среда или организация), где он существовал ранее.
Сохраните и разверните прокси API как новую версию.