【问题标题】:What's the best way to start a GrizzlyWebServer?启动 Grizzly Web 服务器的最佳方式是什么?
【发布时间】:2012-09-13 00:57:56
【问题描述】:

我们正在使用 Grizzly 和 Jersey 构建网络服务,并通过网络搜索不断学习。我们注意到启动 grizzly 网络服务器的两种不同方式,但不知道一种方式是否比另一种更好。有人可以帮忙吗?

1 - 使用 GrizzlyWebContainerFactory:

 public static void main(String[] args) throws IOException {
 Map initParams = new HashMap();
 initParams.put( "com.sun.jersey.config.property.packages", "net.gilstraps.server" );
 SelectorThread selector = GrizzlyWebContainerFactory
 .create( "http://localhost:9998/", initParams ); //noinspection ResultOfMethodCallIgnored
 System.in.read();
 threadSelector.stopEndpoint();
 System.exit(0);
 }
}

2 - 使用 GrizzlyWebServer

 GrizzlyWebServer gws = new GrizzlyWebServer(8080, "/var/www");

// Jersey web resources
 ServletAdapter jerseyAdapter = new ServletAdapter();
 jerseyAdapter.addInitParameter("com.sun.jersey.config.property.packages",
 "com.example");
 jerseyAdapter.setContextPath("/jersey");
 jerseyAdapter.setServletInstance(new ServletContainer());

// Another non-Jersey servlet
 ServletAdapter simpleServletAdapter = new ServletAdapter();
 simpleServletAdapter.setContextPath("/simple");
 simpleServletAdapter.setServletInstance(new SimpleServlet());

// register all above defined adapters
 gws.addGrizzlyAdapter(jerseyAdapter, new String[] {"/jersey"});
 gws.addGrizzlyAdapter(simpleServletAdapter, new String[] {"/simple"});

// let Grizzly run
 gws.start();

那么哪种方式更好呢?

谢谢 --亚历克斯

【问题讨论】:

    标签: java rest jersey grizzly


    【解决方案1】:

    一开始我使用的是您的方法#1,但是一旦我需要提供更复杂的配置,我发现我需要方法#2 才能访问 GrizzlyWebServer 对象。

    例如使用 GrizzlyWebServer,您可以控制工作线程池的大小。 (我应该注意,Grizzly 文档仅建议您在需要完成 IO 绑定工作时这样做)。

    grizzlyWebServer.setCoreThreads(30);
    grizzlyWebServer.setMaxThreads(50);
    

    我找不到使用方法 #1 调整线程池大小的方法,因此我推荐方法 #2 以提高可配置性。

    【讨论】:

      【解决方案2】:

      起初我使用方法#1,但是一旦我需要提供更复杂的配置,我发现我需要方法#2 才能访问 ServletAdapter 对象。

      例如使用 ServletAdapter,我们可以设置它是否必须在启动时加载。

      jerseyAdapter.setProperty("load-on-startup", 1);

      【讨论】:

        猜你喜欢
        • 2016-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-17
        • 2021-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多