根据这个(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);
}
先谢谢
答案 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"});