【问题标题】:Continuously getting java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener不断得到 java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
【发布时间】:2026-01-13 08:30:02
【问题描述】:

我正在努力解决以下异常:

INFO: No Spring WebApplicationInitializer types detected on classpath
Apr 17, 2017 8:48:01 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.apache.tomcat.util.descriptor.web.ApplicationListener@1e856aa
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1465)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1310)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:531)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:513)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:141)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4756)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5288)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1390)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1380)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Apr 17, 2017 8:48:01 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Apr 17, 2017 8:48:01 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart

我正在使用 maven 并添加了下面的依赖项来解决这个问题,但没有得到结果,仍然面临同样的问题。

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

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

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
    <scope>compile</scope>
</dependency>

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

我已经添加了 maven 依赖项。对于 Spring 和 Hibernate,我添加了所有必需的依赖项。

【问题讨论】:

  • 参考这个question
  • @vikram 1) 请在此处添加整个 pom.xml。 2) 你在你的项目中使用 JSF 吗?
  • @PratikShah 我没有在我的项目中使用 JSF。 PFB pom.xml

标签: java spring hibernate maven


【解决方案1】:

如果错误是说找不到类,那么实际上是说JVM无法加载该类,因为JVM在您的类路径中找不到该类。

然后你需要用 maven 再次构建你的项目,以便为你的 JVM 创建 .class 文件,

或者在此之前,尝试再次将您的项目依赖项从远程 maven 存储库拉入本地 maven 存储库,然后执行 maven 构建项目以填充 .class 文件。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我认为问题不在于您的依赖项。我也是春天的新手,但我认为这可能会对您有所帮助:

    @Configuration
    public class SpringWebAppInitializer implements WebApplicationInitializer{
    
         @Override
         public void onStartup(ServletContext sc) throws ServletException {
             AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
             context.register(ApplicationContextConfig.class);
    
             ServletRegistration.Dynamic dispatcher = sc.addServlet("dispatcher", new DispatcherServlet(context));
             dispatcher.setLoadOnStartup(1);
             dispatcher.addMapping("/");
         }
    }
    

    【讨论】:

      最近更新 更多