异常启动过滤器springSecurityFilterChain

时间:2012-01-14 07:35:24

标签: spring tomcat servlets classnotfoundexception

当我启动tomcat时,我得到了这个。我把弹簧2.5.6.jar放在我的类路径中。

SEVERE: Exception starting filter springSecurityFilterChain
java.lang.ClassNotFoundException: org.springframework.web.filter.DelegatingFilterProxy
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:207)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
    at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:78)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3666)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    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:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

我该怎么办?

2 个答案:

答案 0 :(得分:1)

据我所知,在Spring 2.5.x中,这个类要么在spring.jar中,要么在spring-web.jar中。

检查spring2.5.6.jar中是否有类,如果没有,则将spring-web2.5.6.jar添加到类路径中。

答案 1 :(得分:0)

  

我已将spring2.5.6.jar放入我的类路径

这句话含糊不清。 “类路径”仅仅是一个抽象术语,它标识所有本地磁盘文件系统路径的集合,其中Java必须在编译时或运行时扫描类和JAR文件。您当前和以前的问题以及您对此问题的评论并没有让我觉得您正确理解了类路径是什么。

在这种特殊情况下,您需要确保将JAR文件放置在运行时类路径(默认情况下)覆盖的其中一个路径中。 webapp的/WEB-INF/lib文件夹就是其中之一。您只需要在该文件夹中删除JAR的副本。绝对不需要做任何事情。甚至不会在IDE中摆弄 Build Path 属性,这可能会使事情变得更糟。必要时撤消它。只需将JAR放在IDE项目的/WEB-INF/lib文件夹中就足够了。