Не найден обработчик аксона для запроса при возврате ответа с универсальным - PullRequest
1 голос
/ 10 февраля 2020

У нас возникают проблемы, когда наш Axon QueryHandler возвращает класс с параметром Generi c, например QueryResult<T>. Например:

class QueryResult<T>(val values: List<T>, val status: Status,
                                 var text: String? = null) : Serializable {
...
}

И наш обработчик запросов:

@QueryHandler
    fun handle(query: SomeQuery): QueryResult<String>{

Аксон дает нам следующее сообщение:

NoHandlerForQueryException: не найден обработчик для [ SomeQuery] с типом ответа [InstanceResponseType {class QueryResult}] *

Разрешено ли использование Generics в QueryHandlers или мы должны вызывать queryGateway каким-либо конкретным c способом?

1 Ответ

1 голос
/ 10 февраля 2020

Аксон будет разрешать дженерики только для следующих типов возврата:

  • Collection s
  • Future s
  • Optional s

Я полагаю, что для вашего желаемого ответа на запрос потребуется новая реализация интерфейса ResponeType, которая еще больше проверит доступные дженерики.

Краткий ответ? То, что вы пытаетесь сделать, в данный момент невозможно.

Документация относительно коротка по этому вопросу, но, по-моему, все еще ясна. Если вы не согласны с этим, вы можете предоставить запрос на получение ответа или открыть вопрос, чтобы запросить разъяснение по этому вопросу.

...