包javax.servlet.http不存在,但servlet-api.jar不存在

时间:2012-05-16 17:54:46

标签: java servlets classpath

我已经将我的GlassFish 3.1.2 Web服务器与Java SE 1.6一起用于常规Java POJO。 JAVA_HOME,JAVA_PATH和JRE_HOME变量设置正确。我正在使用Linux CentOS6.2,我正在从vi和命令行完成所有java工作(例如没有框架或工具,如Spring,Eclipse等)。

现在我想使用Java Servlet,我收到的错误如下:

package javax.servlet.http does not exist

我假设我的环境路径设置正确,因此servlet文件在编译期间可见。显然事实并非如此。

任何人都知道如何解决此错误?如果要在我的linux目录上搜索,我想找到什么文件名的servlet jar文件?任何人都知道这个文件的位置从JAVA_HOME开始为JDK 1.6?

或者,与servlet相关的文件是不是jdk 1.6的一部分,需要单独安装下载吗?

更新:

如果我从linux提示符输入locate servlet-api.jar,它会在GlassFish安装目录中返回一个路径(例如~/glassfish3/glassfish/modules/javax.servlet-api.jar)。因此,如下所述,它是GlassFish安装的一部分。

3 个答案:

答案 0 :(得分:4)

在编译时,你的类路径中需要servlet-api,它可能在服务器上,但它可以在运行时使用(而不是在编译时)

答案 1 :(得分:3)

servlet API不是Java SE的一部分,而是Java EE的一部分。它没有与JDK捆绑在一起。在Glassfish安装中找到javaee jar文件并将其放入编译类路径中。

答案 2 :(得分:2)

确保您的类路径中有 servlet-api.jar ,因为它不是标准Java SDK的一部分。