获取'无法在Spring 4中找到用于XML架构命名空间的Spring NamespaceHandler [http://www.springframework.org/schema/security]'

时间:2017-04-19 12:43:55

标签: spring-security osgi spring-4 eclipse-virgo eclipse-gemini

我正在将spring项目的OSGi版本升级到第4.2.x版。

我删除了Spring DM依赖项并添加了Gemini Blueprint依赖项(org.eclipse.gemini.blueprint.coreorg.eclipse.gemini.blueprint.extenderorg.eclipse.gemini.blueprint.io),并且它们在Virgo RT服务器中处于ACTIVE状态。
我添加了spring-security-config依赖项,它也处于ACTIVE状态。

但我面临以下问题

  

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:无法找到XML架构命名空间的Spring NamespaceHandler [http://www.springframework.org/schema/security]违规资源:URL [bundleentry://157.fwk1212103909/META-INF/弹簧/的applicationContext-security.xml文件]

我的applicationContext-security.xml文件就像这样

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:security="http://www.springframework.org/schema/security"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/security
       http://www.springframework.org/schema/security/spring-security.xsd">

  <security:global-method-security pre-post-annotations="enabled" run-as-manager-ref="runAsManager"
secured-annotations="enabled">
    <security:expression-handler ref="expressionHandler" />
  </security:global-method-security> 

  ... 

</beans>

我在版本中使用了xsd。同样的结果。

是什么导致了这个问题?

2 个答案:

答案 0 :(得分:0)

如果您说明您正在使用哪种版本的处女座,这将有所帮助。您是否知道Virgo 3.7.0包含Spring 4?

答案 1 :(得分:0)

我必须在我的项目中将以下行添加到META-INF / spring.handlers文件中。

http\://www.springframework.org/schema/security=org.springframework.security.config.SecurityNamespaceHandler