在嵌入式码头托管弹簧网络服务

时间:2012-08-12 00:17:35

标签: spring-mvc embedded-jetty

问题:在嵌入式Jetty中托管Spring Web服务。
这需要适用于单元测试和prod环境。应用程序打包在一个jar中,入口点启动除Jetty之外的其他服务。在WEB-INF上使用WAR文件/ setwar / WebApplicationContext不是一个选项,因为包是jar。

1 个答案:

答案 0 :(得分:0)

    Server jettyServer = new Server(8080);
    DispatcherServlet springServlet = new DispatcherServlet();
    springServlet.setContextConfigLocation("classpath:spring-servlet.xml");
    final ServletContextHandler contextHandler = new
            ServletContextHandler(ServletContextHandler.SESSIONS);
    contextHandler.setContextPath("/");
    contextHandler.addServlet(new ServletHolder(springServlet), "/*");
    jettyServer.setHandler(contextHandler);

    contextHandler.getInitParams().put("contextConfigLocation", "classpath:applicationContext.xml");
    ContextLoaderListener listener = new ContextLoaderListener();
    contextHandler.addEventListener(listener);

    jettyServer.start();
    jettyServer.join();