Альтернативная реализация REST-клиента в QuarkusJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Альтернативная реализация REST-клиента в Quarkus

Сообщение Anonymous »

У меня есть клиент для отдыха, определенный в документации:

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

@RegisterRestClient(configKey = "myservice")
@ApplicationScoped
@LookupIfProperty(name = "myapp.mode", stringValue = "real")
public interface MyAPI {
@GET
@Path("/api/xxx.json")
XXX getXXX();
....
}
Кроме того, у меня есть макет реализации этого интерфейса:

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

@RestClient
@ApplicationScoped
@LookupIfProperty(name = "myapp.mode", stringValue = "mock")
public class MockMyAPI implements MyAPI {
XXX getXXX() {
return ....;
}
....
}

Я использую свойство времени выполнения, которое определяет, какую реализацию следует использовать. Все работает хорошо, хотя я не уверен, что это правильный способ.
Но когда я запускаю тест, я получаю следующее исключение:

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

Caused by: java.lang.IncompatibleClassChangeError: class a.b.c.MockMyAPI can not implement a.b.c.MyAPI, because it is not an interface (a.b.c.MyAPI is in unnamed module of loader io.quarkus.bootstrap.classloading.QuarkusClassLoader @178c9eda)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:523)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:481)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:534)
at java.base/java.lang.Class.forName(Class.java:513)
at a.b.c.MockMyAPI_Bean.(Unknown Source)
Мой вопрос: как правильно предоставить альтернативные реализации клиента REST в Quarkus? Или, если я все делаю правильно, что не так с моим тестом?

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

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

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

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

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

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