Java.lang.IllegalStateException Невозможно найти службу org.eclipse.microprofile.health.spi.HealthCheckResponseProvider JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java.lang.IllegalStateException Невозможно найти службу org.eclipse.microprofile.health.spi.HealthCheckResponseProvider

Сообщение Anonymous »

Я пытаюсь написать тест JUnit для класса HealthCheck на Java, который использует API-интерфейс MicroProfile Health. Класс выглядит следующим образом:

Код: Выделить всё

public HealthCheckResponse call() {
mainServiceName = systemUtil.getEnv("SERVICES");
HealthCheckResponseBuilder builder = HealthCheckResponse.named(mainServiceName + "-dependencies-check");
boolean dependenciesServiceCheck = Boolean.parseBoolean(systemUtil.getEnv("DEPENDENCIES_SERVICE_CHECK"));

if (!dependenciesServiceCheck) {
return builder.up().build();
}
try {
Map serviceStatuses = checkDependentServicesConnectivity();
serviceStatuses.forEach(builder::withData);
boolean isAnyServiceDown = serviceStatuses.containsValue("DOWN");
return isAnyServiceDown ? builder.down().build() : builder.up().build();
} catch (Exception e) {
return builder.down().withData("error", e.getMessage()).build();
}
}
private Map checkDependentServicesConnectivity() {
return new HashMap();
}
Когда я запускаю следующий тест JUnit, я получаю исключение IllegalStateException, указывающее, что он не может найти службу org.eclipse.microprofile.health.spi.HealthCheckResponseProvider:< /p>
**Сообщение об ошибке

Код: Выделить всё

java.lang.IllegalStateException: Unable to find service org.eclipse.microprofile.health.spi.HealthCheckResponseProvider
at org.eclipse.microprofile.health.HealthCheckResponse.find(HealthCheckResponse.java:183)
at org.eclipse.microprofile.health.HealthCheckResponse.getProvider(HealthCheckResponse.java:142)
at org.eclipse.microprofile.health.HealthCheckResponse.named(HealthCheckResponse.java:99)**
Я использую Mockito для имитации зависимостей и JUnit для тестирования.
Класс GenericHealthCheck использует SystemUtil для получения переменных среды.
Я не уверен, как правильно имитировать или настройте метод HealthCheckResponse.named(), чтобы избежать этого исключения IllegalStateException.
Что я пробовал
Я убедился, что в мой проект включены соответствующие зависимости для MicroProfile Health.Я попытался имитировать HealthCheckResponse, но получил ту же ошибку.
Ошибка, с которой вы столкнулись, предполагает, что API MicroProfile Health настроен неправильно в вашей тестовой среде. . Класс HealthCheckResponse использует интерфейс поставщика услуг (SPI) для HealthCheckResponseProvider, который обычно предоставляется реализацией MicroProfile Health API в среде выполнения Java EE или MicroProfile
Любой Буду очень признателен за рекомендации по устранению этой ошибки в моих тестах!

Подробнее здесь: https://stackoverflow.com/questions/791 ... croprofile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»