我在哪里可以找到关于Jetty API的好文档?

时间:2014-04-12 07:15:03

标签: java jetty

我正在研究Jetty的一个例子。界面中有一些方法没有很好地记录,因此我不知道如何将样本调整到我的真实场景。 Jetty文档在某些部分似乎不完整。

对于我看过的很多例子,没有任何解释为什么他们将某些值传递给某些方法。他们怎么知道要传递什么参数?

是否有一些记录良好的示例或文档可以帮助我理解下面的代码:

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

import org.glassfish.jersey.servlet.ServletContainer;
public class MinimalServerRest {

 public static void main(String[] args) throws Exception {
     ServletHolder sh = new ServletHolder(ServletContainer.class);

     // Cannot find documentation on setInitParamter
     sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig");

}

1 个答案:

答案 0 :(得分:1)

这应该是一个好的开始: Embedding Jetty

由于您尝试将Jersey应用程序添加到Jetty,您可能对this感兴趣。

如果您有多个servlet等,您可以执行以下操作:

Server server = new Server(8080);
ServletContextHandler contextHandler = new ServletContextHandler(
            ServletContextHandler.SESSIONS);
contextHandler.addEventListener(new SomeListener());
contextHandler.addFilter(SomeFilter.class, "/*", EnumSet.of(
            DispatcherType.REQUEST, DispatcherType.FORWARD,
            DispatcherType.INCLUDE, DispatcherType.ERROR));
contextHandler.addServlet(new ServletHolder(DefaultServlet.class), "/");
contextHandler.addServlet(new ServletHolder(new ServletContainer(
            new SomeJerseyApplication())), "/basepath/*");
server.setHandler(contextHandler);

server.start();
server.join();

这是一些入门示例代码。除此之外,如果您需要initParameters,您始终可以使用

contextHandler.setInitParameter("key","value")

其中键或值字符串将非常符合您的要求。就个人而言,在使用嵌入式jetty时,我更喜欢使用类和对象而不是基于String的配置。

SomeJerseyApplication看起来像这样:

public class SomeJerseyApplication extends ResourceConfig {

    public SomeJerseyApplication() {
        packages("you.packages.that.need.to.be.scanned.for.resources");
        register(SomeProvider.class);
        register(SomeJerseyFeature.class);
    }
}