我正尝试将我们基于Spring的Web应用程序从Tomcat 8迁移到Undertow。在Undertow部署基于Spring的Web应用程序
我们使用Spring的WebApplicationInitializer进行Spring-MVC和HibernateTransactionManager的编程配置。
有一个ServletContainerInitializerInfo
(Javadoc)类,这似乎为我的目的,例如我可以实例化它,然后按照暗潮文档(link)给出的步骤来启动服务器:
ServletContainerInitializerInfo sciInfo =
new ServletContainerInitializerInfo(containerInitializerClass,
instanceFactory, handlesTypes);
DeploymentInfo servletBuilder = Servlets.deployment()
.addServletContainerInitalizer(sciInfo);
DeploymentManager manager = Servlets.defaultContainer()
.addDeployment(servletBuilder);
manager.deploy();
PathHandler path = Handlers.path(Handlers.redirect("/myapp"))
.addPrefixPath("/myapp", manager.start());
Undertow server = Undertow.builder()
.addHttpListener(8080, "localhost")
.setHandler(path)
.build();
server.start();
的问题是,我不不知道在调用ServletcontainerInitializerInfo
构造函数时用什么来代替instanceFactory
和handlesTypes
参数。另外,addServletContainerInitalizer
方法的名称是拼写错误的(应该是初始化程序而不是Initalizer)。
有人可以帮忙吗?
谢谢!
谢谢!我能够编译并启动应用程序。我有另一个问题,但:Undertow无法找到Spring的WebApplicationInitializer实例。我可能会为此发布一个单独的问题。 – siphiuel
得到它的工作。我必须在HandlesTypes列表中指定WebApplicationInitializer的具体实现。再次感谢! – siphiuel