返回带有通用的响应时,Axon 没有找到用于查询的处理程序

Axon no Handler Found for query when returning Response with Generic

当我们的 Axon QueryHandler 返回带有 QueryResult<T> 等通用参数的 Class 时,我们遇到了问题。 例如:

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

我们的查询处理程序:

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

Axon 向我们传达了以下信息:

NoHandlerForQueryException: No handler found for [SomeQuery] with response type [InstanceResponseType{class QueryResult}]

在 QueryHandlers 中是否允许使用泛型,或者我们是否必须以某种特定方式调用 queryGateway?

Axon 只会解析以下 return 类型的泛型:

  • Collections
  • Futures
  • Optionals

我相信您想要的查询响应需要 ResponeType 接口的新实现,这将进一步检查可用的泛型。

简答?目前无法执行您正在尝试的操作。

documentation is relative short on this, but still clear I think. If you disagree on that, you're free to provide a pull request 或提出问题以请求澄清此事。