【关于 Vert.x 与 Netty 的版本问题】

文章讲述了在Vert.x项目中,由于Vert.x和Netty版本不匹配导致的警告及解决过程。开发者需注意在引入额外Netty依赖时,确保其版本与Vert.x内部使用的Netty版本一致,以避免运行时问题。
摘要由CSDN通过智能技术生成

Vert.x 项目启动的时候出现严重警告

初始化一个 Maven 项目,在 Pom 文件中引入 Vert.x 依赖。

<dependency>
    <groupId>io.vertx</groupId>
    <artifactId>vertx-core</artifactId>
    <version>4.5.7</version>
</dependency>

引入依赖之后,编写一个 Hello World 代码。

public class VertxHttpServer {
    
    public static void main(String[] args) {
        Vertx vertx = Vertx.vertx();
        HttpServer httpServer = vertx.createHttpServer();

        httpServer.requestHandler(request -> {
            HttpServerResponse response = request.response();

            response.end("hello world");
        });

        httpServer.listen(8123, result -> {
            if (result.succeeded()) {
                System.out.println("Vert Http Server Start!");
            }else {
                System.out.println("Vert Http Server Failed: " + result.cause());
            }
        });
    }
}

直接执行 main 方法,启动项目后发现控制台输出了一条严重警告。
(本人使用的是 MacOS 系统,并且我在 Windows 系统上没有出现这个警告。)
在这里插入图片描述
其实这个警告目前来看也不影响使用,只是警告级别不是错误。但是介于本人是个强迫症^ - ^,于是百度查了一下,得到的解决方案是在 pom 文件中添加 netty 的依赖。

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-resolver-dns-native-macos</artifactId>
    <version>4.1.108.Final</version>
</dependency>

如果引入了这个依赖之后依旧有警告,则把上面这个依赖替换成下面这个。当然,你也可以直接一步到位,直接引入下面这个依赖。

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.108.Final</version>
</dependency>

Vert.x 与 netty 的版本对应问题

如上文所示,为解决那条警告就要引入 netty 相关依赖。但是,引入依赖的时候我们需要选择版本,就在我选择版本的时候引发了一个问题,因为我当时引入的不是上文的 4.1.108.Final 版本,而是 4.1.90.Final 版本。
这个时候再启动,已经没有了那条严重警告内容。
在这里插入图片描述

而当这个时候向这个端口号发请求的时候就出现问题了,不管是直接网页请求还是使用 ApiPost 请求都是请求失败。

在这里插入图片描述
在这里插入图片描述
所以当在引入了 Vert.x 依赖之后如果想要再次引入 netty 依赖,则需要注意下版本信息。因为 Vert.x 本身就是使用 netty 开发的,本身就自带有 netty 的依赖。当我们自己再引入依赖的时候,如果版本不一样可能会出现问题。可以在 Maven 的依赖关系中查看 Vert.x 包下的 netty 版本,然后将我们自己引入的 netty 版本与其保持一致即可。
在这里插入图片描述
修改版本之后再次测试!!!
在这里插入图片描述
再次发送请求,得到了 Hello World 的返回内容~
在这里插入图片描述
完结~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值