Spring 3.0-XML 스키마 네임 스페이스를위한 Spring NamespaceHandler를 찾을 수 없음 [http://www.springframework.org/schema/security]


179

이것의 원인이 될 수있는 아이디어가 있습니까?

XML 스키마 네임 스페이스에 대한 Spring NamespaceHandler를 찾을 수 없음 [ 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>

내 pom.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>

나는 Spring pizzashop tutorial
— Rob Grant

이것이 완전한 pom.xml입니까? 병이 없을 가능성이 가장 높기 때문입니다.
— Marco Schoolenberg

답변:


286

추가 Maven 종속성을 추가해야했습니다.

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

3
+1 문제 해결을 위해. 자세한 내용은 다음 스프링 보안 3.0 코드베이스의 재구성에 대한 내용을 참조하십시오 : blog.springsource.com/2009/06/03/spring-security-300m1-released
— Rydell

좋은 링크. 몇 달 전에도 사용할 수있었습니다.
— Taylor Leese

12
다시 베이컨을 구했습니다!
— 앤드류 스완

spring-security-cas항아리 만 사용하려고 할 때 비슷한 솔루션이 유지됩니다 .
— Ryan Ransford

문제 가있는 분들을 위해이 링크 를 추천합니다 Unable to locate Spring NamespaceHandler for XML schema namespace [xxxxx]. 나는 과거에 비슷한 문제 가 있었고 그것은 많은 도움이되었습니다!
— Cotta

18

응용 프로그램을 배포하는 동안 동일한 오류 메시지가 나타납니다. Spring에서 보안 구성 xml은 applicationContext.xml과는 다를 수 있으며 일반적으로 WEB-INF 폴더 내의 applicationContext-security.xml입니다. 적용 할 변경 사항은 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.M2.jar
  • spring-security-config-3.1.0.M2.jar
  • spring-security-core-3.1.0.M2.jar
  • spring-security-taglibs-3.1.0.M2.jar
  • spring-security-web-3.1.0.M2.jar

Spring을 사용하려면 Maven을 사용해야합니다. 그리고 당신이 마지 못해 그렇게해도 여전히 작동하지 않습니다! 누군가 어딘가에서 열심히 웃고 있습니다 ...이 답변은 나의 좌절감을 조금 줄여주었습니다.
— Arne Evertsson

12

나는 이것을 잠시 동안 고투 했고이 답변들 중 어느 것도 도움이되지 못했습니다. user64141 의 의견 덕분에 spring.handlers파일에 문제가 있음을 깨달았습니다 .

Maven 용 Shade 플러그인을 사용하여 뚱뚱한 항아리를 생성하고 모든 spring.handlers(및 spring.schemas) 파일이 각 Spring 종속성에 의해 덮어 쓰여졌습니다.

Maven 사이트는이 정확한 문제와 대신 파일을 함께 추가하여 해결하는 방법을 다룹니다.

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


8

spring-security-config jar을 사용하여 문제가 해결되었습니다.


6

해결책은 WEB-INF / lib에없는 "spring-security-config"입니다.

Maven을 사용하는 Eclipse의 프로젝트의 경우 모든 maven 종속성이 WEB-INF / lib에 복사되지는 않았습니다. 프로젝트-> 속성-> 배포 어셈블리를 보면 일부 항아리 만 복사되었습니다.

이 문제를 해결하기 위해 "추가"를 클릭 한 다음 "Java 빌드 경로 전체"를 클릭하고 마지막으로 "Maven 종속성"을 클릭했습니다.

나는 이것을 찾고있는 지난 한 시간 동안 SO와 웹을 검색 해 왔으므로 희망적으로 이것은 다른 누군가를 도울 것입니다.



3

@James Jithin-xsi : schemaLocation에 두 가지 버전의 Bean과 보안 스키마가있는 경우에도 이러한 예외가 발생할 수 있습니다. 붙여 넣은 스 니펫의 경우입니다.

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로 변경하면 문제가 해결되었습니다.


방금 작동하도록했습니다. http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/security/spring-security-3.2.xsd 제 경우에는 'spring-security-config'jar이 없습니다.
— Ithar

이 의견에 동의했습니다. 이 원인으로 인해 문제가 발생했습니다.
— DolphinJava

2

제가 한:

      <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">

완벽하게 작동합니다. 더 많은 Baeldung


0

이미 pom에 모든 종속성이있는 경우 다음을 시도하십시오.
1. 'org-> springframework'에 대한 maven 저장소 폴더에서 다운로드 한 모든 jar 파일을 제거하십시오
. 2. maven을 깔끔하게 빌드하십시오.


0

오늘도 비슷한 문제가 발생했습니다. 어떤 이유로 IntelliJ IDEA응용 프로그램을 배포하는 동안 Spring Security jar 파일이 포함되지 않았습니다. 나는 대부분의 포스터에 동의해야한다고 생각합니다.


0

Virgo에 배포하는 동안이 오류가 발생했습니다. 해결책은 이것을 내 번들 가져 오기에 추가하는 것입니다.

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

META-INF의 Spring jars에는 spring.schemas 및 spring.handlers 섹션이 있으며 이들이 가리키는 클래스 (이 경우 org.springframework.transaction.config.TxNamespaceHandler)를 가져와야합니다.



0

몇 분 전에 같은 문제가 있었는데 배포 어셈블리에 'Maven depencendies'라이브러리가 없습니다. Eclipse의 'Web Deployment Assembly'섹션을 통해 추가했습니다.


0

종속성을 추가해도 문제가 해결되지 않으면 WAR 아카이브를 다시 작성하십시오. 필자의 경우 보안 웹 및 보안 병 jar이없는 오래된 WAR 파일을 사용했습니다.


0

pom.xml 파일에 다음 종속성을 추가하고 IntelliJ를 사용하는 경우 동일한 jar을 WEB-INF-> lib 폴더에 추가하십시오. 경로는 프로젝트 구조-> 속성-> 사용 가능한 요소 분할 창에서 jar 선택 및 두 번 딸깍 하는 소리. 각 폴더에 추가됩니다

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.