如何在不担心War文件布局的情况下使用Jetty来提供servlet?

时间:2013-10-10 02:17:05

标签: java maven servlets jetty vaadin

我有一个预先存在的Java应用程序,我想使用Vaadin公开一个Web UI。我正在使用Maven进行依赖管理。

Vaadin文档建议使用war文件布局,但我不想将我的代码库重新排列为标准War格式。

有没有办法可以通过编程方式启动Jetty服务器并让它来提供servlet,而不必担心war目录结构?

显示如何从main()方法提供servlet的一些示例代码在这里非常有用。

或者,如果除了Jetty之外的其他东西在这里工作得更好,那就太好了。

1 个答案:

答案 0 :(得分:2)

使用jetty设置一个简单的HTTP服务器非常简单:

final Server httpServer = new Server(18080);
httpServer.setHandler(new AbstractHandler() {

    @Override
    public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
                response.getWriter().write("This is the HTTP response");            
    }
});
httpServer.start();

请注意,这是基于jetty 8.1.8。上面的代码不使用Servlet,但很容易将它连接到你想要的任何框架。

如果你真的需要一个servlet(也许你已经准备好了),请使用Jetty的ServletContextHandler类而不是你自己的处理程序。