嵌入式Jetty入门

嵌入式Jetty入门,jetty,Jetty,我刚开始使用嵌入式码头。我被一些错误信息卡住了。这是简单明了的几行代码,我在网上找到并想测试一下 import org.jaxen.Context; import org.mortbay.jetty.Server; import org.mortbay.jetty.servlet.ServletHolder; public class Main { public static void main(String[] args) throws Exception {

我刚开始使用嵌入式码头。我被一些错误信息卡住了。这是简单明了的几行代码,我在网上找到并想测试一下

 import org.jaxen.Context;
 import org.mortbay.jetty.Server;
 import org.mortbay.jetty.servlet.ServletHolder;

 public class Main {

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

        ServletHolder sh = new ServletHolder(ServletContainer.class);
        sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig");
        sh.setInitParameter("com.sun.jersey.config.property.packages", "jerseyplusjetty");
        Server server = new Server(80);
        ServletContextHandler sch = new ServletContextHandler(server, "/");
        sch.addServlet(sh, "/*");
        server.start();
        server.join();

    }
}
我有java构建路径中的所有jetty JAR。但我不断遇到错误:构造函数ServletHolder(Class)未定义,构造函数服务器(int)未定义,ServletContextHandler无法解析为类型。 如果我删除ServletHolder和服务器中的参数,它将停止抱怨。e、 g.如果我有:ServletHolder sh=newservletholder();服务器=新服务器();
但这是不对的。我读过Jetty文档,ServletHolder类可以获取参数。我在这里遗漏了什么吗?

我拥有的ServletHolder版本在构造函数中采用了字符串或servlet。因此,与其这样做

newservletholder(ServletContainer.class)
您应该执行
newservletholder(ServletContainer.class.getCanonicalName())
newservletholder(new ServletContainer())

ServletContainer是servlet的奇怪名称,请确保它实际上是一个servlet


另外,请注意Jetty有很多不同的版本(您使用的是旧版本,因为在新版本中,所有类都在org.eclipse.Jetty包中),并且很容易找到引用不同版本的示例代码。我将从maven获得jetty 7.2.2,并使用示例代码。

一般来说,仅供嵌入式jetty参考。。。我已经创建了一个github项目,我谦恭地提交了这个项目,它可能涵盖了不断出现的大多数嵌入式jetty问题

我有AbstractHandler、Servlet、Jersey Servlet、静态文件、webapps等等的例子。仍在研究RoR和Sinatra,但会到达那里

有关详细信息,请参阅。 任何想贡献的人,只管问