【发布时间】:2021-12-28 04:43:54
【问题描述】:
我们正在将当前 kotlin 项目中的 Javalin 从 3 迁移到 4。 dynamicGzip 已被弃用,取而代之的是压缩策略。 pom.xml 部分如下所示。
<properties>
<javalin.version>4.1.1</javalin.version>
<jackson.version>2.13.0</jackson.version>
</properties>
kotlin部分代码如下
import io.javalin.Javalin
import io.javalin.apibuilder.ApiBuilder.*
import io.javalin.http.BadRequestResponse
import io.javalin.http.NotFoundResponse
import io.javalin.http.staticfiles.Location
import io.javalin.plugin.json.JavalinJackson
import io.javalin.core.compression.*
val app = Javalin.create { config ->
config.defaultContentType = "application/json"
config.enableWebjars()
config.addStaticFiles("", Location.CLASSPATH)
config.enableCorsForAllgOrigins()
//it.dynamicGzip = true // deprecated method which was used in 3.12.0
config.compressionStrategy(Gzip(6))
}
我们正在使用此链接中的迁移文档 https://javalin.io/migration-guide-javalin-3-to-4
当我们尝试使用此更改在 intelij Idea 中构建项目时,以以下错误结束。
D:\app\src\main\kotlin\app\app.kt:78:40
Kotlin: Unresolved reference: Gzip
我们在这里缺少什么?
如果在 javalin 4 中也添加了 config.addStaticFiles 语法也会很有帮助
【问题讨论】:
-
不是答案,只是观察,因为我使用的是 Java 而不是 Kotlin。这对我有用:
import io.javalin.core.compression.*和config.compressionStrategy(new Brotli(6), new Gzip(6));。换句话说,我需要 Brotli 和 Gzip。这是使用 Javalin 4.1.1。 -
这也是我的静态文件设置:
config.addStaticFiles("/public", Location.CLASSPATH); -
谢谢@andrewJames,它成功了,我得到的下一个错误是 Kotlin: Unresolved reference: enableCorsForAllgOrigins
-
@andrewJames 我已经用已经使用过的 javalin 类编辑了这个问题,
enableCorsForAllgOrigins还有另一个问题吗? -
这是一个错字:
enableCorsForAllgOrigins应该是enableCorsForAllOrigins。
标签: kotlin compression gzip javalin