Как настроить сервер Undertow через дескриптор web.xml? (как это происходит в Tomcat)

Я прямо сейчас пытаюсь настроить сервер undertow с Spring MVC через дескриптор web.xml, но не понимаю, как это произошло?

Я только что попытался настроить контексты spring с помощью bean-компонентов, которые отображаются на контроллерах, и это сработало успешно, но как это сделать с помощью web.xml?

Основной класс, который делает сервер конфигурации

public class UndertowServer {

    private static Undertow server;

    private static final String CONTEXT_PATH = "/";
    private static final String PKG_NAME = "webapp.war";

    public static void main(final String[] args) throws ServletException{

        UndertowServer deployUndertowServer = new UndertowServer();
        deployUndertowServer.configureUndertow();

        server.start();
    }

    private void configureUndertow() throws ServletException {

        DeploymentInfo servletBuilder = Servlets.deployment()
                .setClassLoader(UndertowServer.class.getClassLoader())
                .setContextPath(CONTEXT_PATH)
                .setDeploymentName(PKG_NAME)
                );

        DeploymentManager manager = Servlets.defaultContainer().addDeployment(servletBuilder);
        manager.deploy();

        PathHandler path = Handlers.path(Handlers.redirect(CONTEXT_PATH))
                .addPrefixPath(CONTEXT_PATH, manager.start());

        server = Undertow.builder().addHttpListener(8080, "localhost")
                .setHandler(path).build();
    }
}

веб.xml

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

диспетчер-servlet.xml

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".html" />
    </bean>

    <bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    <bean name="/index"
          class="org.example.controllers.IndexController"/>

person drewlakee    schedule 05.07.2019    source источник
comment
Как указано здесь: stackoverflow.com/a/22314412/1163457 это все еще невозможно. Возможно, когда-нибудь они реализуют такую ​​​​вещь, но я не был бы оптимистом, поскольку этот ответ был в 2014 году. А пока не стесняйтесь использовать мой класс, а также не стесняйтесь улучшать класс, комментируя: gist.github.com/dtrunk90/44562d850dd169ee4f66693da78b2e05   -  person dtrunk    schedule 16.05.2020