1

我试图用裸 Vertx 创建一个 Quarkus 应用程序。但是,我不能多次卷曲。只有第一个 curl 给了我正确的回应。

我尝试在没有 Quarkus 的情况下使用 Vertx(主要方法)。然后一切正常。每个卷曲都会给出正确的响应。所以我认为我在使用 Quarkus 时初始化 Vertx 是错误的。

代码:垂直部署器

package Super.Company.App;

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;

import io.quarkus.runtime.StartupEvent;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Verticle;
import io.vertx.core.Vertx;

@ApplicationScoped
public class App {
  @Inject
  Vertx vertx;

  public void init(@Observes StartupEvent e, Vertx vertx, Instance<AbstractVerticle> verticles) {
    for (AbstractVerticle verticle : verticles) {
      vertx.deployVerticle(verticle);
    }
  }

  public static void main(String[] args) {
    Vertx vertx = Vertx.vertx();
    Verticle myVerticle = new MyVerticle();
    vertx.deployVerticle(myVerticle);
  }

}

代码:垂直

package Super.Company.App;

import javax.enterprise.context.ApplicationScoped;

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

@ApplicationScoped
public class MyVerticle extends AbstractVerticle {

  @Override
  public void start() {
    HttpServer server = vertx.createHttpServer();

    Router router = Router.router(vertx);

    router.route().handler(routingContext -> {

      // This handler will be called for every request
      HttpServerResponse response = routingContext.response();
      response.putHeader("content-type", "text/plain");

      // Write to the response and end it
      response.end("Hello World from Vert.x-Web!");
    });

    server.requestHandler(router).listen(8080);
  }
}

编辑:我向 curl 命令发送了垃圾邮件,偶尔我得到了正确的响应。每 16 个 curl 命令都会正确响应。

更新:除了 curl 垃圾邮件,我做了一些测试。我用过,邮递员,谷歌浏览器和 Safari。

嘿:5% - 15% 是 200,其余的是 404。

邮递员:我只收到404,但是重启服务器后,它只响应200。

浏览器:只有一个选项卡可以连接到服务器。我可以多次刷新这个水龙头,服务器每次发送一个 200。我必须重新启动服务器才能连接其他选项卡。但是,如果我刷新其他选项卡,它们会得到 404。

4

0 回答 0