【问题标题】:getting 'Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]' with spring 4使用 spring 4 获取“无法找到 XML 模式命名空间 [http://www.springframework.org/schema/security] 的 Spring NamespaceHandler”
【发布时间】:2023-03-03 03:33:01
【问题描述】:

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

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

但我面临以下问题

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:找不到 XML 模式命名空间的 Spring NamespaceHandler [http://www.springframework.org/schema/security] 违规资源: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 与版本一起使用。结果相同。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,我使用的是 virgo 3.7.0,我知道 virgo 提供 spring 4。但是缺少 spring-security 包。我已经添加了它们。
      猜你喜欢
      • 2011-01-10
      • 2011-11-03
      • 2019-01-27
      • 2013-10-04
      • 2018-05-16
      • 2015-02-25
      相关资源
      最近更新 更多