ClassNotFoundException:Jetty hello world中的javax.servlet.AsyncContext

时间:2012-01-27 17:32:06

标签: java-ee servlets jetty

我正在尝试遵循http://wiki.eclipse.org/Jetty/Tutorial/Jetty_HelloWorld教程(使用Eclipse)。该项目编译得很好。但是,当我点击localhost服务器时,我得到:

java.lang.ClassNotFoundException: javax.servlet.AsyncContext

现在看起来在Java EE中定义了我需要添加到构建路径以使其工作的内容?我已经安装了Java EE,但我不确定从那里开始。

我正在尝试使用

码头-全8.0.4.v20111024.jar

servlet的API-2.5.jar

2 个答案:

答案 0 :(得分:11)

该类是Servlet 3.0中的introduced,它是Java EE 6的一部分。该教程中提到的Jetty 7是一个Servlet 2.5容器。 Servlet 2.5是Java EE 5的一部分。您需要升级到Jetty 8,这是一个Servlet 3.0容器。

下载并安装整个Java EE包可用here没有任何意义,因为它基本上为您提供了Java EE参考实现Glassfish,而不是Jetty,而您需要更新版本的Jetty,而不是Glassfish。 / p>

你还需要确保没有从某个地方下载任意servlet-api.jar文件并将其放在类路径中,而你手上已经有一个像Jetty这样的值得一提的servlet容器(这是一个经典的初学者错误地避免了他们在javax.servlet API上遇到的编译错误。

另见:

答案 1 :(得分:0)

我猜你安装的Java EE 5没有AsyncContext。更新到Java EE 6,其中包含:  Java EE 6 Doc