首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javalin从3迁移到4

Javalin从3迁移到4
EN

Stack Overflow用户
提问于 2021-12-28 04:43:54
回答 1查看 172关注 0票数 2

在我们当前的kotlin项目中,我们将Javalin从3迁移到4。dynamicGzip已被废弃,取而代之的是压缩策略。pom.xml部分如下所示。

代码语言:javascript
复制
<properties>      
  <javalin.version>4.1.1</javalin.version>
  <jackson.version>2.13.0</jackson.version>
</properties>

kotlin的代码部分如下

代码语言:javascript
复制
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的思想构建这个项目时,以下面的错误结束。

代码语言:javascript
复制
 D:\app\src\main\kotlin\app\app.kt:78:40
 Kotlin: Unresolved reference: Gzip

我们在这里遗漏了什么?

此外,如果还添加了wrt 4,config.addStaticFiles语法也会有所帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-28 16:39:28

压缩

compressionStrategy类的JavalinConfig方法有两个参数:

代码语言:javascript
复制
void compressionStrategy(Brotli brotli, Gzip gzip)

请看JavaDoc 这里

相关的类可以在Javalin中找到:

代码语言:javascript
复制
import io.javalin.core.compression.Brotli;
import io.javalin.core.compression.Gzip;

因此,您可以在设置中执行类似的操作(我的示例是Java而不是Kotlin):

代码语言:javascript
复制
// my Java example:
config.compressionStrategy(new Brotli(6), new Gzip(6));

静态文件

您可以使用类似的东西(同样,Java示例而不是Kotlin):

代码语言:javascript
复制
// my Java example:
config.addStaticFiles("/public", Location.CLASSPATH);

在本例中,由于我希望我的文件位于运行时类路径上,所以我还在应用程序的public目录中创建了一个resources目录。您的具体实现可能有所不同。

如果您愿意,也可以使用Location.EXTERNAL,将文件放在文件系统中的其他地方(应用程序之外)。

注意,config.enableCorsForAllgOrigins()中还有一个小错误。它应该是:

代码语言:javascript
复制
config.enableCorsForAllOrigins()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70502879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档