Undertow:使用现有Servlet实例



我正在尝试用Undertow替换现有应用程序中的嵌入式web服务器,因为旧的在某些情况下无法正常工作。

嵌入式web服务器用于为一些简单的servlet提供服务。我的主要问题是找不到在Undertow中注册现有HttpServlet实例的方法。

我能找到的所有API方法都只接受Class<? extends Servlet>。此外,servlet教程和其他教程仅使用Class<? extends Servlet>来注册servlet。

但是,我的servlet已经存在,我需要直接使用它们,因为每个servlet都已经配置了某些参数,因此不能仅通过提供类名来创建。

有没有任何方法可以使用直接在Undertow中实现javax.servlet.Servlet的类的现有实例,或者Undertow在这种情况下不可用?

可以使用方法Servlet.servlet(String, Class<? extends Servlet>, InstanceFactory<? extends Servlet> servlet):在Undertow中使用现有的Servlet实例

Servlet myServletInstance = ...
Servlets.servlet("MessageServlet", MessageServlet.class, 
new ImmediateInstanceFactory<Servlet>(myServletInstance))
.addMapping("/*")

在这种情况下,类参数被忽略,而不是通过Undertow内部的构造函数创建一个新实例,而是使用所提供的servlet实例。

相关内容

  • 没有找到相关文章

最新更新