问题很简单,但是我已经在挣扎了。
1 2 3 4 5
| Server server = new Server(8080);
Context context = new Context(server,"/", Context.NO_SESSIONS);
context.addServlet(MainPageView.class,"/");
context.addServlet(UserView.class,"/signup");
server.start(); |
这是一个相当标准的代码,您可以在Jetty世界的任何地方找到它。我有一个将Jetty嵌入为servlet引擎的应用程序,并且有一些servlet。
其中一些servlet的实例化需要大量的启动工作。说–阅读其他配置文件,连接到数据库,等等。如何使servlet引擎热切实例化所有servlet,以便我可以预先进行所有艰苦的工作,而不是在第一个用户请求时进行?
我不确定为什么使用Guice make的Justin选项对您不起作用。到底注入了什么?我不确定这是否会对您有帮助,因为它与贾斯汀在上面的写法非常相似,但是如果您这样做,Jetty会进行实际的实例化。
1 2 3 4 5
| Context context = new Context(server,"/", Context.NO_SESSIONS);
ServletHolder mainPageViewHolder = new ServletHolder(MainPageView.class);
// Do this to force Jetty to instantiate the servlet
mainPageViewHolder.getServlet();
context.addServlet(mainPageViewHolder,"/"); |
使用需要ServletHolder的Context.addServlet重载。 ServletHolder是一个接受Class或Servlet实例的类。
1 2 3
| Servlet myServlet = new MyServlet();
ServletHolder holder = new ServletHolder(myServlet);
context.addServlet(holder,"/"); |
这里以Jetty 6为例。我认为它也适用于Jetty7。