当前位置: 首页 > 知识库问答 >
问题:

@注入不工作在Quakus Vertx静态编程语言

晁聪
2023-03-14

我正在尝试使用Quarkus和Kotlin编写一个简单的反应式应用程序,其中只有一个endpoint,并使用Vertx。但这段简单的代码不起作用:

package com.acme

import io.quarkus.vertx.web.Route
import io.vertx.core.Vertx
import io.vertx.core.http.HttpMethod
import io.vertx.ext.web.RoutingContext
import javax.enterprise.context.ApplicationScoped
import javax.inject.Inject

@ApplicationScoped
open class Routing {

    @Inject
    lateinit var vertx: Vertx

    @Route(path = "/hello", methods = [HttpMethod.GET])
    fun handle(rc: RoutingContext) {
        println(vertx)
        rc.response().end("hello")
    }
}

我得到这个例外:

kotlin.UninitializedPropertyAccessException: lateinit property vertx has not been initialized
        at com.acme.Routing.handle(Routing.kt:18)

我已经读了Quakus留档关于静态编程语言(它仍然是一种预览技术),并说了一些关于使用“@field: xxx”的事情,但是我已经尝试了很多东西,没有一个奏效。如果有人知道答案,我会非常感激。

@Inject Vertx或@Inject EventBus,但在静态编程语言中似乎不可能

共有2个答案

孟鸿德
2023-03-14

根据https://quarkus.io/guides/kotlin#cdi-使用kotlin注入时,应添加@field:Default“以处理kotlin反射注释定义中缺少@Target的问题”:

    @Inject
    @field: Default
    lateinit var vertx: Vertx
华建同
2023-03-14

我以你的课堂为例,效果很好:https://github.com/dankito/QuarkusKotlinInjetStackoverflowQuestion.

(只需在项目html" target="_blank">文件夹中执行/gradlew quarkusDev

您是否与Quarkus项目创建者一起设置了项目https://code.quarkus.io/?

检查“Eclipse Vert.x”、“Eclipse Vert.x-Web”和“Kotlin”(添加底部)。

然后,您的类路径(Gradle表示法)上应该有以下依赖项:--org。喷气式飞机。kotlin:kotlin-stdlib-jdk8-io。夸克斯:夸克斯科特林-木卫一。quarkus:quarkus vertx-io。quarkus:quarkus vertx网络

 类似资料:
  • 我试图在Kotlin Vert中实现Postgres发布/订阅。x应用程序,但它似乎不起作用。以下是我尝试过的:

  • 我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?

  • 我有以下问题:-创建了几个模块来实现类,并用-我的Android应用程序正在使用检索这些类。但是由于某种原因,没有在

  • 我试图将@Age constraint的实现从java复制到Kotlin,我复制了Java代码库,并使用IDE将其转换为Kotlin代码。 Java代码 Intellij生成的对应静态编程语言代码 Kotlin代码导致错误声明“注释类中不允许成员”。将注释类List从Age中移出是否可以解决此问题?还有其他方法可以在另一个类中实现注释类吗? 非常感谢。

  • 我有一个Android项目在静态编程语言,它是正确设置和工作 在根build.gradle 应用内构建。格拉德尔 所有工作良好。 根据https://github.com/google/protobuf-gradle-plugin,它也有原型支持 在应用程序build.gradle它有 唯一的问题是,当访问Protobuf的代码生成代码时,即com中的代码。elyeproj公司。原型* ,是Jav

  • 我是一个初学静态编程语言的学生,正在学习一个示例回收人员视图。我开始编码,但没有得到我应该得到的结果,即使在检查和重新检查代码之后也是如此。然后我注意到,即使使用非常基本的代码,它仍然没有按照应有的方式运行。我将包含基本代码,当使用时,它应该显示一个通用列表。我只得到列表中的一项。我怀疑代码以外的其他东西正在影响结果;但是我还没有达到知道的水平。 请看活动内容。xml: 注意它有行。 下面是列表(