Tag: vert.x

Vert.x需要Kotlin类型不匹配处理程序<AsyncResult <Unit >> found(Handler <AsyncResult <Unit >>) – > Unit

以下是Java中Kotlin重写的方法: fun publishMessageSource( name: String, address: String, completionHandler: Handler<AsyncResult<Unit>> ) { val record = MessageSource.createRecord(name, address) publish(record, completionHandler) } 但是,当我打电话如下: publishMessageSource("market-data", ADDRESS, { record: Handler<AsyncResult<Unit>> -> if (!record.succeeded()) { record.cause().printStackTrace() } println("Market-Data service published : ${record.succeeded()}") }) 我得到错误Type Mismatch required Handler<AsyncResult<Unit>> found (Handler<AsyncResult<Unit>>) -> Unit 。 我究竟做错了什么?

kapt插件不能与gradle-script-kotlin一起使用

我想将我的基于vertx的项目移动到https://github.com/sczyh30/vertx-blueprint-microservice.git模板。 蓝图项目在编译期间使用注释@vertxGen等来生成代码。 我正在使用gradle-script-kotlin来构建项目。 我需要使用kapt插件根据注释生成代码(通过vertx … codegen)。 不幸的是,我无法正确配置kapt插件。 它给出以下错误: w:[kapt]没有指定源输出目录,跳过注释处理 我会很高兴,如果有人可以修复我的gradle构建文件。 以下是与kapt相关的片段 import org.jetbrains.kotlin.gradle.plugin.* // kaptExtension … apply { plugin("kotlin-kapt") } … fun Project.kapt(setup: KaptExtension.() -> Unit) = the<KaptExtension>().setup() kapt { generateStubs = true javacOptions( closureOf<KaptJavacOptionsDelegate> { option("-proc:only") option("-processor", "io.vertx.codegen.CodeGenProcessor") // vertx processor here option("-AoutputDirectory", "${projectDir}/src/main") option("-Acodegen.output", "${projectDir}/src/main") } ) // specify output of generated code […]

Vertx plus Kotlin协程永远挂起

我正在使用Kotlin协同程序重写一些Java Vertx异步代码以用于学习目的。 但是,当我尝试测试一个简单的HTTP调用时,基于协程的测试永远挂起,我真的不明白问题在哪里。 这里是一个播放器: @RunWith(VertxUnitRunner::class) class HelloWorldTest { private val vertx: Vertx = Vertx.vertx() @Before fun setUp(context: TestContext) { // HelloWorldVerticle is a simple http server that replies "Hello, World!" to whatever call vertx.deployVerticle(HelloWorldVerticle::class.java!!.getName(), context.asyncAssertSuccess()) } // ORIGINAL ASYNC TEST HERE. IT WORKS AS EXPECTED @Test fun testAsync(context: TestContext) { val atc = context.async() vertx.createHttpClient().getNow(8080, […]

来自Kotlin的vert.x服务代理与vertx-codegen

我在Kotlin写了一个vertx服务接口,为此我试图生成服务代理。 但是,除了在src/main generated目录之外,它什么也不做。 src/main/java/amb85/portfolio/package-info.java : @ModuleGen(name = "portfolio", groupPackage = "amb85.portfolio") package amb85.portfolio; import io.vertx.codegen.annotations.ModuleGen; 然后我有以下服务接口src/main/kotlin/amb85/portfolio/PortfolioService.kt : @VertxGen @ProxyGen interface PortfolioService { companion object { val ADDRESS = "service.portfolio" val EVENT_ADDRESS = "portfolio" } fun getPortfolio(resultHandler: (AsyncResult<Portfolio>) -> Unit) fun buy(amount: Int, quote: JsonObject, resultHandler: (AsyncResult<Portfolio>) -> Unit) fun sell(amount: Int, quote:JsonObject, resultHandler: (AsyncResult<Portfolio>) -> […]

Intellij IDEA调试器不能用于Gradle Vert.X项目

我正在开发一个使用Gradle构建工具使用Vert.X框架的项目。 我遇到的问题是IntelliJ中的断点根本无法以我尝试过的方式工作。 这里是我在Gradle中使用的Vert.X的运行配置: run { args = [ 'run', mainVerticleName, "-conf", confPath, "–redeploy=$project.ext.watchForChange", "–launcher-class=$mainClassName", "–on-redeploy=$project.ext.doOnChange" ] } 因此,使用Gradle完成部署,运行没有任何问题, IntelliJ调试器已连接,但断点不起作用 。 我试图使其工作的方式: 1)Gradle运行配置。 以下是Intellij IDEA的运行配置: 试图使用远程调试工具,启动应用程序与以下VM选项: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 但是这不起作用。 2)应用程序配置: 在这种情况下,我不能启动项目,因为我在启动时收到以下消息: Error: Could not find or load main class io.vertx.core.Launcher Vert.X Core库在类路径中,配置看起来是正确的,所以不能得到是的问题。 该项目的源代码是公开的,可以在GitHub上GitHub : vertx-gradle这个架构起动 Vert.X版本 – 3.4.0。 Gradle版本 – 3.4.1。 IntelliJ IDEA版本 – 2016.3.5。 OS – […]

如何在运行时编译和使用Kotlin代码?

我正在尝试创建一个Kotlin Vert.x语言支持模块,我需要一种方法来编译Kotlin文件并使用ClassLoader加载结果。 我试过使用kotlin-compiler库,发现K2JVMCompiler类,但它似乎只支持命令行式的exec参数方法。 有没有办法在运行时编译Kotlin文件(可能不需要保存和读取.class文件)并立即加载生成的类? (有点像Groovy的 。)如果不是,你有任何有用的编译器参数的建议或几乎任何建议?