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.