1

我正在将使用 Spring security 3.0 的应用程序迁移到 Spring security 3.1。

我收到有关引用不正确架构的错误:

SEVERE: Exception sending context initialized event to listener instance of class    
org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration    
problem: You must use a 3.0 schema with Spring Security 3.0.(2.0 or 3.1 versions are not  
valid) Please update your schema declarations to the 3.0.3 schema (spring-security- 
3.0.3.xsd).
Offending resource: ServletContext resource [/WEB-INF/security-context.xml]

当我查看 /lib 时,我看到许多 3.1 版本的 jar 被复制为 3.0 版本。我怀疑这是导致上述错误的原因。

当我使用 Eclipse Maven 插件查看 pom.xml 的依赖关系树时,我可以看到引用早期版本的位置(例如 spring-security-acl 依赖于几个 3.0 jar),但它们被标记为“因冲突而忽略”和...'。这是否意味着它们应该从构建的战争文件中省略?

我已经尝试在我的 pom 根目录中明确命名这些文件的 3.1 版本,但旧版本仍然包含在内。

4

2 回答 2

1

违规资源:ServletContext 资源 [/WEB-INF/security-context.xml]

实际上,该消息表明security-context.xml使用了与 spring-security-3.1 不兼容的架构/声明。该消息要求您改用 3.0 版本的库。您可能需要查看和更新​​它并重试。

于 2012-07-19T05:24:38.653 回答
0

我仍然不确定发生了什么,但我尝试在 Eclipse 中使用相同的 pom 和源文件创建一个新项目,现在该项目似乎可以正常运行。

于 2012-07-23T13:14:05.073 回答