在 quarkus/kotlin 应用程序中,我有一个非常基本的休息客户端:
@Path("/my/api/v1")
@RestClient
interface MyApiClient { }
问题是,当请求失败时,它会返回一个无法映射的响应。所以我想添加一个异常映射器,以记录真正的错误:
class MyExceptionMapper : ResponseExceptionMapper<java.lang.RuntimeException?> {
override fun toThrowable(r: Response): java.lang.RuntimeException {
Logger.getLogger(MyApiClient::class.java).error(r.status)
return RuntimeException("failed")
}
}
为此,我应该对我的客户进行注释:
@RegisterProvider(MyExceptionMapper::class.java)
这样做,我有一个 kotlin 错误:
注释参数必须是编译时常量
我用谷歌搜索,但只能找到字符串的解决方案。在这种情况下,kotlin 期望 java 类是编译时常量。如何得到它?