使用spring2+acegi的时候遇到一个问题,启动tomcat的时候始终出现如下错误:
2007-09-12 09:54:45,758 [main] DEBUG org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver - Ignoring namespace handler [org.acegisecurity.config.SecurityNamespaceHandler]: handler class not found
java.lang.ClassNotFoundException: org.acegisecurity.config.SecurityNamespaceHandler
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:201)
at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.initHandlerMappings(DefaultNamespaceHandlerResolver.java:117)
at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.<init>(DefaultNamespaceHandlerResolver.java:96)
at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.<init>(DefaultNamespaceHandlerResolver.java:82)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.createDefaultNamespaceHandlerResolver(XmlBeanDefinitionReader.java:488)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.createReaderContext(XmlBeanDefinitionReader.java:477)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
开始以为是项目问题,但是重新编译了很多次,没有任何错误,就是启动的时候会出错。
没办法,只好去百度谷歌搜索一下,百度搜英文还真不怎么样,啥玩意儿都搜不出来,搜出来的都是没用的。
最后在谷歌上找到了,这个原来是acegi的一个bug,他们在发布acegi的时候没有删除META-INF目录下的schema/handlers 这两个文件。删掉这两个文件或者使用其它版本的acegi就可以了。