我有一个到其他服务的外部 http 客户端,我已经将它导入到我的 micronaut 应用程序,但收到一个错误,指出:
原因:io.micronaut.context.exceptions.NoSuchBeanException:不存在 [xxx.files.client.micronaut.FilesClient] 类型的 bean。确保 bean 没有被 bean 要求禁用(启用跟踪日志以检查“io.micronaut.context.condition”),如果启用了 bean,则确保将类声明为 bean 并启用注释处理(对于 Java 和Kotlin 的“micronaut-inject-java”依赖项应配置为注解处理器)。
我在应用程序启动时添加了这些类:
object TransformerApplication {
@JvmStatic
fun main(args: Array<String>) {
Micronaut.build()
.packages(
"xxx.transformer",
"xxx.files.client.micronaut"
)
.mainClass(TransformerApplication.javaClass)
.start()
}
}
但是在创建时:
@KafkaListener("transformer-group")
class EventsConsumerImpl(private val xlsTransformer: XlsTransformer,
private val filesClient: FilesClient,
private val workspacesClient: WorkspacesClient) : EventsConsumer {
...
}
我的http客户端:
@io.micronaut.http.client.annotation.Client("\${files.url}")
interface FilesClient {
companion object {
const val FILES_TOKEN_KEY = "FILES"
}
@FilesTokenVerification
@Get("\${files.url}/{fileId}")
fun getFile(@PathVariable fileId: String): ByteArray
@FilesTokenVerification
@Patch("\${files.url}/{fileId}/info")
fun updateFileStatus(@PathVariable fileId: String, @Body metadata: Metadata): Metadata
@FilesTokenVerification
@Get("\${files.url}/{fileId}/info")
fun getFileMetadata(@PathVariable fileId: String): Metadata
}```
Can someone explain to me what I'm doing wrong?