Встраивание Jetty 9 с использованием ServletContext
Я пытаюсь обновить Jetty 7 до Jetty 9, используя примеры здесь:
http://www.eclipse.org/jetty/documentation/current/embedding-jetty.html
Server server = new Server(8080);
ServletContextHandler context=new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
HttpServlet servlet=new TestServlet();
context.addServlet(new ServletHolder(servlet), "/*");
server.setHandler(context);
server.start();
server.join();
Тем не менее, он умирает во время выполнения:
java.lang.NullPointerException
at org.eclipse.jetty.util.component.ContainerLifeCycle.addBean(ContainerLifeCycle.java:304)
at org.eclipse.jetty.util.component.ContainerLifeCycle.addBean(ContainerLifeCycle.java:213)
at org.eclipse.jetty.server.Server.<init>(Server.java:128)
at org.eclipse.jetty.server.Server.<init>(Server.java:103)
Сервлет в образце - это простой пример Hello World.
1 ответ
Ниже приведен пример использования Jetty9 Embedded/Servlets с использованием поставляемого класса Jetty "DefaultServlet".
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletContextHandler context=new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
DefaultServlet defaultServlet = new DefaultServlet();
ServletHolder holderPwd = new ServletHolder("default", defaultServlet);
context.addServlet(holderPwd, "/*");
server.setHandler(context);
server.start();
server.join();
}
Выход:
2014-04-08 10: 04: 18.173: INFO:: main: регистрация инициализирована @132ms 2014-04-08 10:04:18.243:INFO:oejs.Server:main: jetty-9.1.3.v20140225 2014-04-08 10:04:18.282: ИНФОРМАЦИЯ:oejsh.ContextHandler:main: запущен oejsServletContextHandler@52e21a17{/,null,AVAILABLE} 2014-04-08 10:04:18.298:INFO:oejs.ServerConnector:main: Запущенный ServerConnector@ {738866 HTTP/1.1}{0.0.0.0:8080} 2014-04-08 10:04:18.298: ИНФОРМАЦИЯ:oejs.Server:main: Started @259ms