[SPRING] 일치하는 와일드 카드는 엄격하지만 요소의 컨텍스트에 대한 선언을 찾을 수 없습니다. component-scan
SPRING일치하는 와일드 카드는 엄격하지만 요소의 컨텍스트에 대한 선언을 찾을 수 없습니다. component-scan
첫 번째 봄 프로젝트를 시도하는 동안 다음과 같은 오류가 발생합니다.
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:component-scan
다음은 applicationContext.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:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:component-scan base-package="com.xyz" />
</beans>
오류의 원인은 무엇입니까?
해결법
-
==============================
1.컨텍스트 네임 스페이스의 스키마 위치를 지정하지 않았습니다. 이것이이 특정 오류의 원인입니다.
컨텍스트 네임 스페이스의 스키마 위치를 지정하지 않았습니다. 이것이이 특정 오류의 원인입니다.
<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-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
-
==============================
2.스키마 위치의 경로가 잘못되었습니다.
스키마 위치의 경로가 잘못되었습니다.
http://www.springframework.org/schema/beans
올바른 경로는 /로 끝나야합니다.
http://www.springframework.org/schema/beans/
-
==============================
3.문제가 발생했습니다.
문제가 발생했습니다.
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'security:http'
나에게 spring-security-config jar를 classpath에 추가해야했다.
http://docs.spring.io/spring-security/site/docs/3.1.x/reference/ns-config.html
편집하다:
pom에 올바른 의존성이있을 수 있습니다.
그러나...
여러개의 스프링 의존성을 사용하고 하나의 jar로 어셈블하는 경우 META-INF / spring.schemas는 다른 스프링 의존성의 spring.schemas에 의해 덮어 쓰여지고있을 것입니다.
(조립 된 항아리에서 그 파일을 추출하면 이해할 수 있습니다)
스프링 스키마는 다음과 같은 줄의 묶음 일뿐입니다.
http\://www.springframework.org/schema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler http\://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd
그러나 다른 종속성이 해당 파일을 덮어 쓰면 정의가 http에서 검색되고 방화벽 / 프록시가 있으면 그 파일을 가져올 수 없습니다.
한 가지 해결책은 spring.schemas와 spring.handlers를 단일 파일에 추가하는 것입니다.
검사:
Spring jandlers / spring.schemas가 하나의 항아리에 여러 개의 스프링 종속성을 병합 할 때 덮어 쓰지 않도록하는 아이디어
-
==============================
4.이 오류는 필요한 XSD가 들어있는 jar 파일이 전개 된 클래스 경로에 포함되지 않은 경우에도 발생할 수 있습니다.
이 오류는 필요한 XSD가 들어있는 jar 파일이 전개 된 클래스 경로에 포함되지 않은 경우에도 발생할 수 있습니다.
컨테이너에서 종속성을 사용할 수 있는지 확인하십시오.
-
==============================
5.STS를 사용하는 경우 Eclipse에서 구성 파일을 "Bean 구성"파일로 표시 할 수 있습니다 (XML 파일을 만들거나 마우스 오른쪽 단추로 클릭 할 때 지정할 수 있음).
STS를 사용하는 경우 Eclipse에서 구성 파일을 "Bean 구성"파일로 표시 할 수 있습니다 (XML 파일을 만들거나 마우스 오른쪽 단추로 클릭 할 때 지정할 수 있음).
프로젝트는 Spring Nature를 가져야합니다 (예 : maven 프로젝트를 마우스 오른쪽 버튼으로 클릭).
springconfig는 기본적으로 spring.xml이 열린다.
이 편집기에는 네임 스페이스 탭이 있습니다.
네임 스페이스를 지정할 수 있습니다.
의존성에 의존한다는 점을 명심하십시오 (maven 프로젝트 사용). 따라서 spring-tx가 maven의 pom.xml에 정의되어 있지 않으면 옵션이 없으므로 가질 수 없습니다. 일치하는 와일드 카드는 엄격하지만 선언은 할 수 없습니다 'tx : annotation-driven' '컨텍스트 : 구성 요소 스캔'요소에서 발견되었습니다.
-
==============================
6.너무 늦었지만 다른 사람들에게 어느 정도 유용 할 수 있습니다.
너무 늦었지만 다른 사람들에게 어느 정도 유용 할 수 있습니다.
어떤 의미의 선언이나 XML에서 발견 할 수없는 선언을 놓쳤다는 의미입니다.
내 경우에는 다음을 추가하는 것을 잊었다.
추가 후 문제가 사라졌습니다.
<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/mvc" 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" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
-
==============================
7.컨텍스트를 추가 할 때 : xml에서 처음으로 구성 요소 검색을 수행하려면 다음을 추가해야합니다.
컨텍스트를 추가 할 때 : xml에서 처음으로 구성 요소 검색을 수행하려면 다음을 추가해야합니다.
xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
-
==============================
8.올바른 경로는 "/"로 끝나지 않아야합니다. 문제가 발생한 것은 잘못되었습니다.
올바른 경로는 "/"로 끝나지 않아야합니다. 문제가 발생한 것은 잘못되었습니다.
옳은 방법 :
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-
==============================
9.네임 스페이스 선언 및 스키마 위치를 사용하면 네임 스페이스의 구문을 확인할 수도 있습니다 (예 : -
네임 스페이스 선언 및 스키마 위치를 사용하면 네임 스페이스의 구문을 확인할 수도 있습니다 (예 : -
<beans xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation= http://www.springframework.org/`enter code here`schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:annotation-driven/> <!-- This is wrong --> <context:annotation-config/> <!-- This should work -->
from https://stackoverflow.com/questions/13589470/the-matching-wildcard-is-strict-but-no-declaration-can-be-found-for-element-co by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] START_OBJECT 토큰에서 java.util.ArrayList의 인스턴스를 deserialize 할 수 없습니다. (0) | 2018.12.08 |
---|---|
[SPRING] AngularJS html5Mode로 봄 부팅 (0) | 2018.12.08 |
[SPRING] 스프링 MVC 컨트롤러에 대한 GET 요청에서 날짜 매개 변수를 수락하는 방법? (0) | 2018.12.08 |
[SPRING] Spring 보안 3.2 다중 요청에 대한 CSRF 지원 (0) | 2018.12.08 |
[SPRING] 모든 응답에 헤더를 자동으로 추가합니다. (0) | 2018.12.08 |