Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法解析导入javax.servlet_Java_Eclipse_Tomcat_Servlets - Fatal编程技术网

无法解析导入javax.servlet

无法解析导入javax.servlet,java,eclipse,tomcat,servlets,Java,Eclipse,Tomcat,Servlets,我正在尝试使用eclipse for Java EE来开发web应用程序 我需要使用Tomcat作为我的服务器。我已经下载了Tomcat,它正在运行。但是我的程序没有编译 我得到以下错误: 无法解析import javax.servlet 我需要做什么?将servlet-api.jar添加到类路径中。您可以从tomcat的lib文件夹中获取它。您需要将Servlet API添加到类路径中。在Tomcat 6.0中,它位于Tomcat的lib文件夹中一个名为servlet-api.JAR的JAR中

我正在尝试使用eclipse for Java EE来开发web应用程序

我需要使用Tomcat作为我的服务器。我已经下载了Tomcat,它正在运行。但是我的程序没有编译

我得到以下错误:

无法解析import javax.servlet


我需要做什么?

将servlet-api.jar添加到类路径中。您可以从tomcat的lib文件夹中获取它。

您需要将Servlet API添加到类路径中。在Tomcat 6.0中,它位于Tomcat的lib文件夹中一个名为servlet-api.JAR的JAR中。您可以将对该JAR的引用添加到项目的类路径中,或者将JAR的副本放在Eclipse项目中,然后从那里将其添加到类路径中

如果要将JAR保留在Tomcat的lib文件夹中:

在项目上单击鼠标右键,然后单击“属性”。 选择Java构建路径。 单击“库”选项卡 单击添加外部jar。。。 浏览找到servlet-api.jar并选择它。 单击“确定”以更新生成路径。 或者,如果将JAR复制到项目中:

在项目上单击鼠标右键,然后单击“属性”。 选择Java构建路径。 单击添加罐子。。。 在项目中找到servlet-api.jar并选择它。 单击“确定”以更新生成路径。
如果尚未完成,则需要在Servers视图中集成Tomcat。右键单击此处并选择新建>服务器。从列表中选择适当的Tomcat版本并完成向导

创建新的动态Web项目时,应在向导的第一步中从列表中选择集成服务器作为目标运行时


或者,当您有一个现有的动态Web项目时,您可以在项目属性中的目标运行时条目中设置/更改它。然后Eclipse将自动将其所有库添加到构建路径,而不在项目中复制它们

在Eclipse中也有同样的问题。出于某种原因,我的构建路径中没有servlet.jar文件。我最后做的是将一个lib文件夹从我的另一个项目复制到我正在进行的项目中,然后手动进入该文件夹并将servlet.jar文件添加到构建路径选项中,当您在project explorer中右键单击该文件时会显示该选项。

您需要在POM中将依赖项的范围设置为“提供”


然后一切都会好起来。

我遇到了同样的问题,因为我的动态Web项目没有引用我想要使用的已安装的服务器,因此没有引用服务器提供的Servlet API

以下步骤解决了此问题,但没有向Java构建路径Eclipse版本添加额外的Servlet API:Luna:

右键单击动态Web项目 选择属性 在属性向导左侧的列表中选择项目面 在向导的右侧,您应该看到一个名为Runtimes的选项卡。选择Runtime选项卡并检查要运行servlet的服务器。
编辑:如果没有列出任何服务器,您可以在运行时选项卡上创建一个新的服务器。如果出现此编译错误,这意味着您没有在类路径中包含servlet jar。包含此jar的正确方法是将服务器运行时jar添加到eclipse项目中。您应按照以下步骤解决此问题: 您可以从这里下载servlet-api.jar

将其保存在目录中。右键单击project->转到properties->Buildpath并按照步骤操作。添加到pom.xml

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

在/WEB-INF/lib中有一个特定于servletcontainer的JAR副本会使您的应用程序不可移植。它只能在完全相同的服务器make/版本上运行,而不能在其他服务器make/版本上运行。NoClassDefFoundError会在你的脑海中飞来飞去。我从来没有说过它应该在WEB-INF/lib中出现——只是它可以被复制到项目中,这样就可以添加到构建路径中。这并不一定意味着它会被包括在战争中。不过,这显然很笨拙,不是推荐的方法。这是一个变通解决方案。下面由BalusC给出了确切的解决方案。添加servlet-api.jar,project>clean,没有任何变化。@sage:Eclipse对集成服务器后创建的新项目也这样做。对我不起作用,我拥有你说的一切,但是它仍然无法使用Tomcat 8.0.3作为服务器来解析javax.servlet。请注意,如果在使用maven时仍然发生此问题,那么我们只需要重新构建项目,让它识别依赖项的更改。
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>