【问题标题】:Axon no Handler Found for query when returning Response with Generic使用 Generic 返回 Response 时未找到用于查询的 Axon 处理程序
【发布时间】:2020-02-10 06:39:47
【问题描述】:

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

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

还有我们的查询处理程序:

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

Axon 正在向我们传达以下信息:

NoHandlerForQueryException: 没有为 [SomeQuery] 找到处理程序 响应类型 [InstanceResponseType{class QueryResult}]

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

【问题讨论】:

    标签: kotlin axon


    【解决方案1】:

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

    • Collections
    • Futures
    • Optionals

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

    简短回答?目前您正在尝试做的事情是不可能的。

    documentation 在这方面相对较短,但我认为仍然很清楚。如果您对此有异议,您可以随时提供pull request 或提出问题以要求澄清此事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多