0

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

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

有没有一种方法可以让我以编程方式启动一个 Jetty 服务器并让它提供一个 servlet,而不必担心战争目录结构?

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

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

4

1 回答 1

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();

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

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

于 2013-10-10T08:04:58.947 回答