Jersey + Grizzly在没有web.xml的情况下加载启动

时间:2017-07-13 16:48:41

标签: java jersey web.xml grizzly

根据这个(servlet response time is slow for first request)SO问题我可以使用web.xml中的load-on-startup参数在启动时创建服务类,而不是在第一个客户端请求上创建服务类,这会导致更好的第一响应客户的时间。

但是我使用Grizzly + Jersey,我怎样才能在灰熊中配置这种行为,或者这完全不可能?那么在不使用完整的Java EE应用服务器的情况下,什么是灰熊的替代品

编辑:主要的主要方法是:

public static void main(String... args){
    //Packages which contain service classes
   final ResourceConfig rc = new ResourceConfig()
            .packages("de.danielr1996.flamingoapi.services");

    //Logging Aktivieren
    rc.register(new LoggingFilter());

    //Dependency Injection konfigurieren
    rc.register(new DependencyBinder());

    //Jackson hinzufügen
    rc.register(JacksonFeature.class);

    //Datenbank initialisieren
    DatabaseUtil.getEntityManagerFactory();

    // Server erstellen
    return GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
}

先谢谢

1 个答案:

答案 0 :(得分:0)

        ServletAdapter adapter =new ServletAdapter();
        ...
        adapter.setProperty( "load-on-startup", 1 );

<强>更新

我现在不知道如何配置从Factory创建的实例。我认为它不允许您提供复杂的配置。 但您可以通过以下方式手动创建服务器:

GrizzlyWebServer ws = new GrizzlyWebServer(80);
ServletAdapter adapter = new ServletAdapter();

然后配置适配器Javadocs

adapter.setContextPath("...");      
adapter.setRootFolder("...");
adapter.setHandleStaticResources(true);
adapter.setProperty("load-on-startup","1");                                                             

将适配器添加到服务器

   ws.addGrizzlyAdapter(adapter, new String[]{"/uri"});