问题描述
我有一个到其他服务的外部 http 客户端,我已经将它导入到我的 micronaut 应用程序中,但收到一个错误提示:
Caused by: 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?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)