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. Изменения, которые будут применены для web.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, а затем в библиотеку:
- spring-security-acl-3.1.0.М2.банку
- spring-security-config-3.1.0.М2.банку
- spring-security-core-3.1.0.М2.банку
- spring-security-taglibs-3.1.0.М2.банку
- spring-security-web-3.1.0.М2.банку
я боролся с этим некоторое время, и ни один из этих ответов не помог. Спасибо за комментарий user64141 я понял, что была проблема с
spring.handlers
файлы.Я использую плагин Shade для Maven для создания жирной банки, и все
spring.handlers
(иspring.schemas
) файлы перезаписывались каждой весенней зависимостью.сайт Maven охватывает эту точную проблему и как ее решить, добавив файлы вместе вместо этого:
решение определенно "spring-security-config" не в вашем WEB-INF/lib.
для моего проекта в Eclipse с использованием Maven оказалось, что не все зависимости maven копируются в WEB-INF/lib. Глядя на сборку Project - > Properties - > Deployment, копировались только некоторые из банок.
чтобы исправить это, я нажал "добавить", затем "Java Build Path Entires" и, наконец, "Maven Dependencies".
Я искал так и в интернете последний час ищу это, так что, надеюсь, это поможет кому-то еще.
хороший список зависимостей Maven существует по адресу:Весна-Сайте!--2--> Основные артефакты, необходимые являются:
- spring-security-core
- Spring-security-web
- 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
не включили файлы Jar Spring Security при развертывании приложения. Я думаю, что должен согласиться с большинством плакатов здесь.
Я получил эту ошибку при развертывании в Деву. Решение состояло в том, чтобы добавить это в мой пакет импорта:
org.springframework.transaction.config;version="[3.1,3.2)",
Я заметил, что в весенних банках под META-INF есть весна.схемы и пружина.раздел обработчиков и класс, на который они указывают (в данном случае org.springframework.торговая операция.конфиг.TxNamespaceHandler) должны быть импортированы.
была такая же проблема несколько минут назад, мне не хватало библиотеки "Maven depencendies" в моей сборке развертывания. Я добавил его через раздел "сборка веб-развертывания" в Eclipse
Если добавление зависимостей не решило вашу проблему, создайте военный архив снова. В моем случае я использовал устаревший файл WAR без security-web и security-conf jars
добавьте следующую зависимость в pom.xml-файл, и если вы используете IntelliJ, то добавьте те же банки в папку WEB-INF->lib.... путь-это структура проекта -> Atrifacts -> выбрать банку из доступных элементов панели и дважды щелкните. Он добавит в соответствующую папку
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>3.0.1.RELEASE</version> </dependency>