【发布时间】:2011-10-16 14:50:40
【问题描述】:
我试图通过嵌入码头来开发网络服务器。因此,使用 jetty 7.3 一切正常。昨天我将码头库更新到最新版本 8.0.3,现在我通过创建 ServletContextHandler 得到了一个异常。
线程“main”中的异常 java.lang.NoClassDefFoundError: javax/servlet/FilterRegistration 在 org.eclipse.jetty.servlet.ServletContextHandler.(ServletContextHandler.java:126) 在 org.eclipse.jetty.servlet.ServletContextHandler.(ServletContextHandler.java:106) 在 org.eclipse.jetty.servlet.ServletContextHandler.(ServletContextHandler.java:94) 在 org.gemsjax.server.GemsJaxServer.main(GemsJaxServer.java:38)
所以我要做的是:
public static void main(String[] args) {
Server server = new Server(8080);
ServletContextHandler servletContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
servletContext.setContextPath("/servlets");
servletContext.addServlet(new ServletHolder( new CollaborationWebSocketServlet()),"/collaboration");
// The ResourceHandler to handle static web content
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setDirectoriesListed(true);
resourceHandler.setWelcomeFiles(new String[]{ "index.html" });
resourceHandler.setResourceBase("./war/");
ContextHandler resourceContext = new ContextHandler();
resourceContext.setContextPath("/static");
resourceContext.setHandler(resourceHandler);
HandlerCollection handlers = new HandlerCollection();
handlers.addHandler(resourceContext);
handlers.addHandler(servletContext);
server.setHandler(handlers);
try {
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
}
}
所以抛出异常的行是:
ServletContextHandler servletContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
我正在使用 ubuntu 11.04:
openjdk java 版本“1.6.0_22” OpenJDK 运行环境 (IcedTea6 1.10.2) (6b22-1.10.2-0ubuntu1~11.04.1) OpenJDK 64-Bit Server VM(build 20.0-b11,混合模式)
有人有什么建议吗?
【问题讨论】: