访问资源时ClassNotFoundException

时间:2012-04-26 05:15:47

标签: java spring tomcat

使用Spring MVC应用程序从@Controller访问资源时出现此错误:

java.lang.ClassNotFoundException: org.openymsg.network.event.SessionListener
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    com.myapp.common.controller.MyController.getMessage(MyController.java:21)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

应用程序有两个@Controllers,一个工作,另一个访问时抛出ClassNotFoundException(上图)

应用程序在Tomcat 6上运行

我将maven依赖项放在pom中,用于库'openymsg',我可以从'Libraries-> Maven Dependencies'中看到实际的jar。我想知道为什么我会收到这个错误。是因为丢失的罐子?或者其他什么,也许这个库不能在Tomcat上运行或者使用Spring?

1 个答案:

答案 0 :(得分:1)

不知何故,Class无法访问。可能的原因是,

  1. 缺少Jar文件
  2. 错误的路径设置
  3. 您已完成任何Jar文件升级,新版本具有不同的类结构