严重:配置类org.apache.catalina.deploy.ApplicationListener的应用程序侦听器时出错

时间:2013-09-10 13:25:23

标签: java eclipse tomcat

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

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

***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

11 个答案:

答案 0 :(得分:28)

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

2)选择“部署程序集

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

4)从Directive Type菜单中选择“ Java Build Path Entries ”,然后点击“Next”按钮。

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

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

答案 1 :(得分:6)

你遗漏了一些像struts-spring plugin

这样的罐子

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

从服务器中删除您的应用程序,然后重新部署您的应用程序。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

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

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

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

答案 8 :(得分:0)

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

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

2)禁用自动构建。 TopBarMenu>项目>自动取消选中修建

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

可替换地,  右键单击要构建的项目单击构建项目(上面的刷新)。 (注意:如果项目设置为自动构建,则隐藏此选项)

4)运行项目。

答案 9 :(得分:0)

(在我的案例中有效) 这也是它工作的情况之一, 去 Windows的> ShowView->服务器。 展开Tomcat(例如) - >删除相关的jar 重建项目。

@Rishi Gautam给出的工作解决方案应该是真的。

答案 10 :(得分:0)

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