【问题标题】:Vertx throws "Response has already been written" IllegalStateExceptionVertx 抛出“响应已被写入”IllegalStateException
【发布时间】:2019-02-25 21:39:53
【问题描述】:

所以,我现在正在学习如何使用 vertx,并且我正在尝试在获取请求时提供一个 html 文件。当我实际在本地主机上执行请求时,它会提供文件,但在我的控制台中我收到错误:

IllegalStateException:响应已写入

这是我的代码:

package com.techprimers.vertx;

import io.vertx.core.Vertx;
import io.vertx.core.http.HttpServer;
import io.vertx.core.http.HttpServerResponse;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.Route;

class App {
    public static void main(String[] args) {

        Vertx vertx = Vertx.vertx();

        HttpServer httpServer = vertx.createHttpServer();

        Router router = Router.router(vertx);

        Route indexRoute = router
                .get("/")
                .handler(routingContext -> {
                    HttpServerResponse response = routingContext.response();
                    response.setChunked(true);
                    response.sendFile("frontEnd/index.html");
                    response.end();
                });
  httpServer
                .requestHandler(router::accept)
                .listen(8000);

    }
}

我的文件树看起来像这样:

知道为什么会这样吗? 谢谢

【问题讨论】:

  • 一切正常!
  • 什么意思?它抛出一个错误
  • 它没有向我抛出任何异常!刚刚复制了你的代码!

标签: java vert.x


【解决方案1】:

好的,所以解决方法是删除

response.end();

现在可以正常使用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 2016-05-21
    • 1970-01-01
    • 2019-06-10
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多