首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Jetty 6迁移到Jetty 8

从Jetty 6迁移到Jetty 8
EN

Stack Overflow用户
提问于 2012-02-14 22:47:54
回答 2查看 8K关注 0票数 8

我在简单的应用程序中使用jetty6作为嵌入式servlet容器。我决定将其更新到Jetty 8。在jetty 6中,启动服务器非常简单:

代码语言:javascript
复制
Server server = new Server(8080);
Context context = new Context(server, "/", Context.SESSIONS);
context.addServlet(MyServlet.class, "/communication-service");
server.start();

但它在Jetty8中不起作用。不幸的是,我找不到这个版本的任何简单示例。无法实例化上下文,出现错误

代码语言:javascript
复制
an enclosing instance that contains
    org.eclipse.jetty.server.handler.ContextHandler.Context is required

因为现在它是一个内部类,也没有这样的构造函数。

大多数示例是针对jetty 6和jetty 7的。您能提供如何在jetty 8启动servlet的简单示例吗?

EN

回答 2

Stack Overflow用户

发布于 2012-02-17 13:47:41

这是与您的代码等效的Jetty8。它仍然和以前一样简单,但是API略有变化。

如果这对您不起作用,那么您可能会遇到类路径问题- Jetty 8被分成许多独立的jar文件,您将需要大量的jar文件。至少你需要:

  • jetty-continuation
  • jetty-http
  • jetty-io
  • jetty-security
  • jetty-server
  • jetty-servlet
  • jetty-util
  • servlet-api

如果您有这些jars,那么下面的代码应该可以很好地工作:

代码语言:javascript
复制
package test;

import java.io.IOException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;

public class Jetty8Server {
    public static class MyServlet extends HttpServlet {
        protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
            response.setContentType("text/plain");
            response.getWriter().write(getClass().getName() + " - OK");
        }
    }
    public static void main(String[] args) throws Exception {
        Server server = new Server(8080);
        ServletContextHandler handler = new ServletContextHandler(ServletContextHandler.SESSIONS);
        handler.setContextPath("/"); // technically not required, as "/" is the default
        handler.addServlet(MyServlet.class, "/communication-service");
        server.setHandler(handler);
        server.start();
    }
}
票数 13
EN

Stack Overflow用户

发布于 2012-02-14 23:28:40

Jetty现在是Eclipse的一部分。文档here是针对Jetty7的,但声称它应该适用于Jetty8。在页面末尾有一个使用servlet的示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9278912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档