得到 'Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]' 和 spring 4

getting 'Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]' with spring 4

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

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

但我面临以下问题

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security] Offending resource: URL [bundleentry://157.fwk1212103909/META-INF/spring/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的版本。同样的结果。

知道是什么导致了这个问题吗?

如果您说明您使用的是哪个版本的 Virgo,将会有所帮助。您是否知道 Virgo 3.7.0 包含 Spring 4 个事实?

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

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