16

这是我尝试web.xml在 Eclipse 中运行我的项目时的错误。

这是我在尝试运行项目网页时面临的主要错误

***SEVERE: Error configuring application listener of `class` org.apache.catalina.deploy.ApplicationListener@1864160e
java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener****
at java.lang.ClassLoader.findBootstrapClass(Native Method)
    at java.lang.ClassLoader.findBootstrapClassOrNull(`ClassLoader`.java:927)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:298)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1629)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4854)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Sep 10, 2013 6:37:24 PM org.apache.catalina.core.StandardContext listenerStart
4

11 回答 11

32

1)右键单击项目,然后选择“属性”。

2)选择“部署程序集

3) 点击右侧的“添加按钮”。

4) 从指令类型菜单中选择“ Java Build Path Entries ”,然后单击“下一步”按钮。

5) 并从 Java Build Path Entries 菜单中选择“ Maven Dependencies ”,然后单击“Finish”。

6)删除旧服务器实例并创建新实例,然后在服务器上运行项目...

于 2013-12-14T12:53:11.847 回答
6

servlet-api.jar不在您的类路径中。签入您的 servlet 容器的lib文件夹。如果您使用的是 Tomcat,那通常位于C:/apache-tomcat-7.XX/lib. 如果不存在,请下载并添加它。


Tomcat Servlet API jar 可在此处获得。

于 2013-09-10T15:04:17.327 回答
5

你错过了一些罐子,比如struts-spring plugin

使用类似的版本来获得清晰的输出

于 2013-09-18T16:05:32.007 回答
2

检查所有的罐子是否正确配置。清理 Eclipse 服务器。清理 Tomcat 工作目录。转到菜单项目-> 清洁。重新启动服务器和应用程序。

于 2014-11-27T05:10:12.073 回答
1

每当我从 SVN 存储库中检查我的项目时,我都遇到了类似的问题,这对我有用:-

1)清理服务器。TopBarMenu>项目>清理

2) 禁用自动构建。TopBarMenu>Project>取消选中自动构建

3) 手动构建项目。TopBarMenu>项目>构建

或者, 右键单击要构建的项目,然后单击构建项目(刷新上方)。(注意:如果项目设置为自动构建,则隐藏此选项)

4) 运行项目。

于 2017-01-18T13:59:34.620 回答
1

从服务器中删除您的应用程序并再次重新部署您的应用程序。

于 2016-03-15T19:36:44.273 回答
1

这会定期发生在我身上。即使依赖项是正确的,即使我之前在 Eclipse 中启动了服务器也没有问题。但是,如果我在服务器运行时更​​改代码,有时我会遇到这个问题。

我会从服务器中删除应用程序。启动服务器。停止服务器。然后,重新运行“mvn eclipse:eclipse -Dwtpversion=2.0”(可能类似于 Project->Clean)。

然后,按 F5 刷新项目。将应用程序添加到服务器。启动服务器。

有时在服务器运行或错误停止时更改代码,这也会阻塞端口(有时需要关闭 eclipse 或重新启动我的计算机)。

于 2016-12-24T01:41:25.637 回答
0

javax.servlet如果您已经为 JavaEE 包的一部分 部署了库,那么您犯了一个错误,Web 服务器已经包含了这些库并加载了与您的 servlet 规范 API 相对应的负载。

于 2013-09-10T15:36:30.293 回答
0

如果您在 Eclipse 中导入了其他人的项目,则删除并添加servlet-api.jar到类路径中,因为 servlet-api.jar 的路径在您的系统上可能不同。之后清理项目并再次运行。

于 2015-03-18T11:06:57.823 回答
0

如果您已使用所有必需的 jar 正确配置和构建项目并且仍然遇到相同的错误,那么您可能会错过创建类文件夹。如果我们使用现有项目设置并对其进行配置,则应根据项目要求手动输入默认输出文件夹。就我而言,eclipse 将默认输出文件夹提供给 /bin,但它被配置为 project_name/WEB-INF/classes。所以我把它改成了 project_name/WEB-INF/classes

于 2017-08-08T09:38:55.870 回答
0

(在我的情况下有效)这也是有效的情况之一,转到 Windows->ShowView->Servers。展开 Tomcat(例如)-> 删除相关的 jar 重建项目。

对于这种情况,@Rishi Gautam 给出的解决方案应该是正确的。

于 2017-07-15T02:19:12.833 回答