im jettyを埋め込んでWebサーバーを開発しようとしています。だから、桟橋7.3ではすべて正常に動作しました。昨日、私は桟橋のライブラリを最新のバージョン8.0.3に更新しました。今はServletContextHandlerを作成してExceptionを取得しました。 Ubuntuの11.04を使用してjetty 7をjetty 8に更新しています:java.lang.NoClassDefFoundError:javax/servlet/FilterRegistration
ServletContextHandler servletContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
イムと::
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/FilterRegistration at org.eclipse.jetty.servlet.ServletContextHandler.(ServletContextHandler.java:126) at org.eclipse.jetty.servlet.ServletContextHandler.(ServletContextHandler.java:106) at org.eclipse.jetty.servlet.ServletContextHandler.(ServletContextHandler.java:94) at 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();
}
}
だから、例外をスローラインである
OpenJDKのJavaバージョン」 1.6.0_22 " OpenJDKランタイム環境(IcedTea6 1.10.2)(6b22-1.10.2-0ubuntu1〜11.04.1) OpenJDK 64ビットサーバーVM(ビルド20.0-b11、混在モード)
提案がありますか?
は、あなたのanswereをありがとうございましたが、サーブレット3.0 APIをダウンロードして利用可能な場合イムはまだ不思議? Java SE JDK 1.6のアップデート22(openjdk)はServlet 3.0を提供していませんか?私は混乱しています... – sockeqwe
あなたはすでにそれをダウンロードしました。 Jetty 8はServlet 3.0 API実装です。あなたは、Java EE APIが抽象**である(つまり、仕様書やjavadocとしてのみ紙に書かれています)、Jetty、Tomcat、Glassfish、JBoss ASなどの具体的なJava EE/Servletコンテナを理解する必要があります。 .. **具体的な**実装です(つまり、コードとライブラリを含んでいます)。 – BalusC
オック、それは私の推論の誤りでした。私はすべての桟橋のライブラリを含んでいますが、例外はまだそこにあります – sockeqwe