【问题标题】:Way to create a simple Java HttpServer创建简单 Java HttpServer 的方法
【发布时间】:2021-12-14 21:55:53
【问题描述】:

我在 Tomcat 上有一个带有 Spring MVC 的旧应用程序,我想在其中启动另一个端口上的服务器。

对于这种情况,我通常使用方便的Javalin。但在这种情况下,它不适合我,因为它是使用加载 javax.servlet-api 3.1 的 Jetty 加载的,但应用程序使用 javax.servlet-api 3.0。

任何人都可以为 HttpServer 建议一个类似的框架或方便的模式(以免为每个请求创建一个处理程序)。

在 Javalin 中创建服务器的示例:

public MyServer() {
    Javalin app = Javalin.create (). Start (7000);
    app.get ("/", ctx -> ctx.result ("Hello World"));
    }

【问题讨论】:

  • Servlet 3.1 向上兼容任何 Servlet 3.0 代码。在 Servlet 3.1 容器中运行 Servlet 3.0 应用程序究竟关心什么?
  • 仅供参考,有关 Servlet 3.0 和 3.1 之间变化的讨论,请参阅 IBM.com 上的这两个帖子:behavior changes 和 features。
  • Java 18 带来了一个内置的简单网络服务器。见JEP 408: Simple Web Server。抢先体验available now。我不知道这是否满足您的需求。而且这个网络服务器不打算以任何严肃的方式在生产中使用:“提供功能丰富的或商业级的服务器不是目标。存在更好的选择……”
  • @BasilBourque 基本上,问题在于我们有多个服务器用于不同的区域,具有不同的 gradle 配置。这可能很多。
  • 您可能想了解12factor.net上的不同服务器或区域没有不同的构建环境

标签: java servlets httpserver javalin


【解决方案1】:

你可以使用 Vert.x

HttpServer server = Vertx.vertx().createHttpServer();
server.requestHandler(new Handler<HttpServerRequest>() {
  public void handle(HttpServerRequest request) {
    request.response.end("Hello Vert.x");
  }
});
System.out.println("server is running on http://localhost:9090/");
server.listen(9090);

【讨论】:

    猜你喜欢
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多