Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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
为什么可以';Eclipse找不到javax.servlet.ServletContextListener?_Java_Eclipse_Maven_Tomcat6 - Fatal编程技术网

为什么可以';Eclipse找不到javax.servlet.ServletContextListener?

为什么可以';Eclipse找不到javax.servlet.ServletContextListener?,java,eclipse,maven,tomcat6,Java,Eclipse,Maven,Tomcat6,我知道这是一个已经被问了很多次的问题,但我尝试了几乎所有我找到的解决方案,但仍然不起作用 我的工作对象是: 日食开普勒 爪哇7 马文 Tomcat 6.0.37 我正在尝试启动服务器,但由于以下原因失败: INFO: Starting Servlet Engine: Apache Tomcat/6.0.37 Jul 13, 2015 3:30:54 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Error

我知道这是一个已经被问了很多次的问题,但我尝试了几乎所有我找到的解决方案,但仍然不起作用

我的工作对象是:

  • 日食开普勒
  • 爪哇7
  • 马文
  • Tomcat 6.0.37
我正在尝试启动服务器,但由于以下原因失败:

INFO: Starting Servlet Engine: Apache Tomcat/6.0.37
Jul 13, 2015 3:30:54 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.util.Log4jConfigListener
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1595)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 29 more

Jul 13, 2015 3:30:54 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1595)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 29 more

Jul 13, 2015 3:30:54 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1595)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletRequestListener
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 29 more
第一次导入项目时,启动成功,应用程序成功。但是它不再工作了,所以我创建了一个新的工作区,并在新的工作区中第二次导入了项目,这就是我得到这些错误的地方

到目前为止我已经尝试过的:

  • 使用Tomcat安装而不是工作区元数据
  • 很多项目/清理、Maven/更新项目、服务器/清理

  • 服务器/打开启动配置->我在
    用户条目下的类路径中添加了
    commons-logging-1.1.1.jar
    spring-web-3.2.3.RELEASE.jar
  • 当我使用工作区元数据时,我还尝试将WEB-INF文件夹复制并粘贴到元数据的.plugin文件夹中
  • 我还检查了jar是否在.m2文件夹中,看起来还可以
编辑: @金米 我的应用程序尚未部署,因此我没有任何war文件。但我确实在WEB-INF下有一个lib文件夹: apache-tomcat-6.0.37\wtpwebapps\msapp web\web-INF\lib

以下是构建路径的apache Tomcat中的库:

我猜您出现此错误是因为您试图从Eclipse启动tomcat服务器。因此,问题在于Eclipse如何配置WebApp的类路径

在Eclipse中,转到项目的“属性”窗口。 选择: Java构建路径>库

选择: 服务器运行时>ApacheTomcat


这将告诉Eclipse,它应该考虑Tomcat的LIB导演JAR是Tomcat的类路径的一部分。

< P>这对我起了作用:

我做了很多清理、刷新,甚至删除服务器并重新添加。我也这样做了:右键单击project/Maven/updateproject

发生了什么事

java.lang.NoClassDefFoundError:javax/servlet/ServletContextListener

消失了。事实上,我没有任何错误了,但是服务器启动得太快了,很明显没有加载任何页面。因为当页面真正加载时,我可以在控制台中看到加载日志。这不是一个案子,我得到了一个

http状态404

在那之后,我做了好几次

右键单击服务器/属性/交换机位置

然后,我遇到了另一个与数据库连接相关的错误:

java.lang.ClassNotFoundException:oracle.jdbc.pool.OracleConnectionPoolDataSource

因此,我实施了@Ranger的第二个建议

其中包括添加

ojdbc14.jar

到运行配置的类路径,在

用户条目

然后它成功了

我不知道是Maven、Eclipse还是Tomcat在检测库方面如此不稳定。
不管怎样,它成功了,谢谢大家

如果您使用的是Tomcat10,那么您必须在maven/gradle依赖项中使用
jakarta.servlet
而不是
javax.servlet

我将更详细的解释发布在:


Tomcat10不会调用使用
javax.servlet
的侦听器类,这非常令人困惑,因为所有教程和堆栈溢出指南都会告诉您使用
javax.servlet
maven依赖项,但这正是为什么在Tomcat10中不会调用Listener的原因。

应用程序部署的war文件的WEB-INF/lib中有哪些库?您可以从Eclipse内部打开类型
ServletContextListener
?它来自哪个jar文件?我的Java构建路径中有ApacheTomcatV6.0[ApacheTomcatV6.0],但在您附带的屏幕盖中没有看到servlet-api.jar。构建路径条目(对于Apache Tomcat)是否展开以显示Tomcat/lib目录中的JAR?是的,它位于Apache Tomcat构建路径中,我刚刚编辑了我的帖子并添加了一个屏幕截图。Tomcat是如何启动的?我通常在服务器上右键单击/启动