【问题标题】:ClassNotFoundException while starting the Tomcat 7 Server in MyEclipse在 MyEclipse 中启动 Tomcat 7 服务器时出现 ClassNotFoundException
【发布时间】:2014-01-10 12:32:05
【问题描述】:

我正在使用 MyEclipse 9 和 Tomcat7.0 。我采用了最新的代码并部署在 Tomcat 7 中并启动了服务器。我立即收到如下所述的错误日志。

    INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definition has been ignored.
Jan 10, 2014 5:53:40 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class com.aap.apweb.servlet.APServletContextListener
java.lang.ClassNotFoundException: com.aap.apweb.servlet.APServletContextListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4537)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5097)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5092)
    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)
Jan 10, 2014 5:53:40 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class com.aap.apweb.servlet.APHTTPSessionListener
java.lang.ClassNotFoundException: com.aap.apweb.servlet.APHTTPSessionListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4537)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5097)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5092)
    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)
Jan 10, 2014 5:53:40 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Jan 10, 2014 5:53:40 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Jan 10, 2014 5:53:40 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/apweb] startup failed due to previous errors
Jan 10, 2014 5:53:41 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/apweb] registered the JDBC driver [net.sourceforge.jtds.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Jan 10, 2014 5:53:41 PM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Jan 10, 2014 5:53:41 PM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Jan 10, 2014 5:53:41 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 13243 ms

我认为必须设置 jars 路径。但我找不到它。

【问题讨论】:

  • 在我看来,应用程序的 web.xml 引用了一个侦听器类,但该侦听器的实际 .class 文件实际上并未部署到服务器。如果是这样,您的应用程序的部署程序集或构建路径可能在 Eclipse 中设置错误。

标签: java tomcat7 myeclipse


【解决方案1】:

com.aap.apweb.servlet.APHTTPSessionListener 是您的课程之一吗?我在谷歌上没有得到任何点击,所以我猜是这样。您需要确保已在构建路径中设置所有依赖项并相应地设置部署策略。可以通过右键单击项目,选择属性,然后转到 MyEclipse/Web 页面并单击部署选项卡来调整项目的部署策略。在该选项卡上,您可以选择使用工作台设置(在这种情况下,大多数字段将显示为灰色)或不使用(只需取消选择“使用工作台默认设置”)。

请注意,最新版本的 MyEclipse 让您可以通过部署程序集更明确地控制部署。 MyEclipse 9 的许可证也适用于 MyEclipse 2014,可从 www.myeclipseide.com 网站下载。

【讨论】:

  • 我试过你的答案,但没有解决我的问题。通过您的回答,我知道如何找到应用程序的上下文根。无论如何我找到了答案。
【解决方案2】:

右键项目

然后在库窗格中转到构建路径 -> 添加库

然后选择server run time,然后选择add apache tomcat,然后尝试运行您的应用程序。

【讨论】:

    【解决方案3】:

    您可以将所需的项目导出为 jar 文件,并将它们放在 WEB-INF\lib 中的 .WAR 文件中。这样可以确保您的 jar 文件中的类在应用程序启动期间被加载。

    【讨论】:

      【解决方案4】:

      根据日志中的这一行:

      The web application [/apweb] registered the JDBC driver [net.sourceforge.jtds.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
      

      我已将 db2 jdbc 1.6 jars(db2jcc4.jar and db2jcc4_license_cisuz.jar) 添加到我的项目构建路径中。这些罐子在重新启动服务器时解决了我的问题。它开始没有任何问题。

      感谢所有极客回复我。

      【讨论】:

        【解决方案5】:

        当我在 Eclipse Luna 环境中启动 tomcat 服务器时,我遇到了同样的错误。我的操作系统是 Ubuntu。 实际上问题是当我构建项目时,web 模块没有创建 M2e-wtp maven 文件夹。当我们启动 tomcat 服务器时,它看不到 maven 依赖项。就在这时,异常来了。 我通过下载最新的火星日食解决了这个问题。我再次检查了我的项目。 干净安装我的项目后,问题得到解决。它工作正常。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-16
          • 1970-01-01
          • 1970-01-01
          • 2014-12-30
          • 2020-07-26
          • 1970-01-01
          相关资源
          最近更新 更多