如何在 Ktor 中注册一个 servlet?

Posted

技术标签:

【中文标题】如何在 Ktor 中注册一个 servlet?【英文标题】:How to register a servlet in Ktor? 【发布时间】:2019-04-18 07:24:50 【问题描述】:

我正在寻找在 ktor 中注册 javax.servlet.http.HttpServlet 的方法,但找不到。

我需要安装功能吗?在路由中注册它?我可以启用扫描@WebServlet 注释吗?

示例 servlet:

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/foo")
public class MyServlet extends HttpServlet 

    @Override
    protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) 
        // ...
    

【问题讨论】:

ktor 不是 servlet 容器,但是您可以将 ktor 和 servlet 部署到同一个 servlet 容器中,例如 jetty 或 tomcat @serg 但是 ktor 嵌入了 Netty、Tomcat 等,所以我想我可以在配置运行容器时注册一个 servlet。 【参考方案1】:

设计目前不支持您想要的。请参阅我的Feature Request 和相应的PR 以添加对它的支持。

【讨论】:

以上是关于如何在 Ktor 中注册一个 servlet?的主要内容,如果未能解决你的问题,请参考以下文章

在 Ktor 0.9.0 servlet 中控制 cookie 生命周期

Ktor 和远程 tomcat 部署

如何在一个 Spring 应用程序的 web.xml 中注册多个 servlet

如何在 Ktor 中调用内部端点?

如何使用 Spring Boot 注册辅助 servlet?

如何使请求绑定的数据在 Ktor 中全局可用?