Spring 3.0-не удается найти Spring NamespaceHandler для пространства имен схемы XML [http://www.springframework.org/schema/security]

любые идеи, что может быть причиной этого?

не удается найти пружину NamespaceHandler для схемы XML пространство имен [http://www.springframework.org/schema/security]

org.springframework.web.context.ContextLoader initWebApplicationContext: Context initialization failed
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: ServletContext resource [/WEB-INF/applicationContext.xml]

Это мой applicationContext.XML-код:

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

В моем пом.xml у меня есть:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>      
    <version>3.0.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-openid</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>

15 ответов


Мне нужно было добавить дополнительную зависимость Maven:

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>3.0.1.RELEASE</version>
    </dependency>

у меня было такое же сообщение об ошибке при попытке развернуть приложение. Весной xml конфигурации безопасности может отличаться от applicationContext.XML-файле, как правило, applicationContext-безопасности.xml внутри папки WEB-INF. Изменения будут применены для веб.в XML

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext.xml
        /WEB-INF/applicationContext-security.xml
    </param-value>
</context-param>

и applicationContext.xml будет выглядеть так:

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

    <http auto-config='true'>
        <intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
        <intercept-url pattern="/**" access="ROLE_USER" />
        <form-login login-page='login.jsp'/>
    </http>

</beans:beans>

даже после внесения этих изменений будет существовать ошибка пространства имен. Чтобы избавиться от этого, добавьте следующие файлы jar в WEB-INF / lib, а затем в библиотеку:

  • весна-безопасность-acl-3.1.0.М2.Джар
  • spring-security-config-3.1.0.М2.Джар
  • spring-security-core-3.1.0.М2.Джар
  • весна-безопасность-taglibs-3.1.0.М2.Джар
  • spring-security-web-3.1.0.М2.Джар

я боролся с этим некоторое время, и ни один из этих ответов не помог. Благодаря комментарию от user64141 я понял, что есть проблема с spring.handlers файлы.

Я использую плагин тени для Maven для создания жирной банки, и все spring.handlersspring.schemas) файлы перезаписывались каждой весенней зависимостью.

сайт Maven охватывает эту точную проблему и как ее решить, добавив файлы вместе вместо этого:

http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer


Я использовал spring-security-config jar, он решил проблему для меня


решение определенно "spring-security-config" не в вашем WEB-INF/lib.

для моего проекта в Eclipse с использованием Maven оказалось, что не все зависимости maven копируются в WEB-INF/lib. Глядя на Project - > Properties- > Deployment Assembly, копировались только некоторые из банок.

чтобы исправить это, я нажал "добавить", затем" Java Build Path Entires "и, наконец,"Maven Dependencies".

Я искал так и в интернете последний час искал это, так что, надеюсь, это поможет кому-то еще.


хороший список зависимостей Maven существует по адресу:Весна-Сайте!--2--> Основные необходимые артефакты:

  1. весна-безопасности-ядро
  2. Весна-безопасность-web
  3. spring-security-config

@James Jithin-такое исключение может появиться также при наличии двух разных версий компонентов и схемы безопасности в xsi: schemaLocation. Это случай в фрагменте, который вы вставили:

xsi:schemaLocation="http://www.springframework.org/schema/beans   
 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
 http://www.springframework.org/schema/security  
 http://www.springframework.org/schema/security/spring-security-3.1.xsd"

в моем случае изменение их обоих на 3.1 решило проблему


что я сделал:

      <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>3.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>3.2.5.RELEASE</version>
        </dependency>

и

xsi:schemaLocation="
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-3.2.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

строительство perfectlly. Больше Baeldung


Если у вас уже есть все зависимости в вашем pom, попробуйте:
1. Удалите все загруженные банки из папки репозитория maven для "org - >springframework"
2. Сделайте Maven чистой сборки.


Я сегодня столкнулся с очень похожей проблемой. Почему-то IntelliJ IDEA не включили файлы Spring Security jar при развертывании приложения. Я думаю, что должен согласиться с большинством плакатов здесь.


Я получил эту ошибку при развертывании в Деву. Решение состояло в том, чтобы добавить это к импорту моего пакета:

org.springframework.transaction.config;version="[3.1,3.2)",

Я заметил, что в весенних банках под META-INF есть весна.схемы и пружина.раздел обработчиков и класс, на который они указывают (в данном случае org.springframework.торговая операция.конфиг.TxNamespaceHandler) необходимо импортировать.


Я нашел такое решение:

http://www.javacreed.com/unable-to-locate-spring-namespacehandler-for-xml-schema-namespace-httpwww-springframework-orgschemamvc/

включите эту банку в свой проект


была та же проблема несколько минут назад, я пропустил библиотеку "Maven depencendies" в моей сборке развертывания. Я добавил его через раздел "сборка веб-развертывания" в Eclipse


Если добавление зависимостей не решило вашу проблему, создайте военный архив снова. В моем случае я использовал устаревший файл WAR без security-web и security-conf jars


добавьте в pom следующую зависимость.xml-файл, и если вы используете IntelliJ, добавьте те же банки в папку WEB-INF->lib.... путь-структура проекта - > Atrifacts - > выберите jar из панели доступные элементы и дважды щелкните. Он добавит в соответствующую папку

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>