[SPRING] cvc-elt.1 : 'beans'요소의 선언을 찾을 수 없습니다.
SPRINGcvc-elt.1 : 'beans'요소의 선언을 찾을 수 없습니다.
스프링 보안을 사용하여 사용자 로그인 기능을 인증하는 bean 객체를 얻으려고합니다.
ApplicationContext context = new ClassPathXmlApplicationContext(
"com/humandevice/drive/fx/util/applicationContext.xml");
authenticationManager = (AuthenticationManager) context
.getBean("authenticationManager");
내 applicationContext.xml은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
xmlns:context="http://www.springframework.org/schema/context">
<context:component-scan base-package="com.humandevice.drive.fx">
<context:include-filter type="regex"
expression="com.humandevice.drive.fx.*" />
</context:component-scan>
<bean id="LoginController" alias="loginController" class="controller.LoginController">
<property name="authenticationManager" ref="authenticationManager" />
<property name="applicationContext" ref="applicationContext" />
</bean>
<bean id="applicationContext" alias="applicationContext"
class="org.springframework.context.ApplicationContext;">
</bean>
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="userService">
<password-encoder ref="bCryptPasswordEncoder" />
</authentication-provider>
</authentication-manager>
</beans>
그러나 나는이 예외를 얻는다 :
Caused by: org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 64; cvc-elt.1: Cannot find the declaration of element 'beans'.
문제를 이해하는 데 어려움을 겪고 있습니다.
최신 정보
나는 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" xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd">
<import resource="/context-service.xml" />
<import resource="/context-repository.xml" />
<context:component-scan base-package="com.humandevice.drive.fx"></context:component-scan>
<authentication-manager>
<authentication-provider user-service-ref="com.humandevice.drive.service.user.IUserService">
<password-encoder ref="bCryptPasswordEncoder" />
</authentication-provider>
</authentication-manager>
</beans:beans>
이제이 예외가 발생합니다.
lineNumber : 11; columnNumber : 44; cvc-complex-type.2.4.c : 일치하는 와일드 카드가 엄격하지만 'import'요소에 대한 선언을 찾을 수 없습니다.
해결법
-
==============================
1.기본 네임 스페이스는 http://www.springframework.org/schema/security이며 xmlns : beans = "http://www.springframework.org/schema/beans"를 구성했습니다. 즉 접두사 beans : to를 추가해야합니다. 모든 태그 양식은 http://www.springframework.org/schema/beans이므로 XML은 다음과 같아야합니다.
기본 네임 스페이스는 http://www.springframework.org/schema/security이며 xmlns : beans = "http://www.springframework.org/schema/beans"를 구성했습니다. 즉 접두사 beans : to를 추가해야합니다. 모든 태그 양식은 http://www.springframework.org/schema/beans이므로 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.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" xmlns:context="http://www.springframework.org/schema/context"> <context:component-scan base-package="com.humandevice.drive.fx"> <context:include-filter type="regex" expression="com.humandevice.drive.fx.*" /> </context:component-scan> <beans:bean id="LoginController" alias="loginController" class="controller.LoginController"> <beans:property name="authenticationManager" ref="authenticationManager" /> <beans:property name="applicationContext" ref="applicationContext" /> </beans:bean> <beans:bean id="applicationContext" alias="applicationContext" class="org.springframework.context.ApplicationContext;"> </beans:bean> <authentication-manager alias="authenticationManager"> <authentication-provider user-service-ref="userService"> <password-encoder ref="bCryptPasswordEncoder" /> </authentication-provider> </authentication-manager> </beans:beans>
-
==============================
2.이 코드는 도움이 될 것입니다.
이 코드는 도움이 될 것입니다.
<?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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans classpath:/org/springframework/beans/factory/xml/spring-beans-3.0.xsd http://www.springframework.org/schema/context classpath:/org/springframework/context/config/spring-context-3.0.xsd http://www.springframework.org/schema/aop classpath:/org/springframework/aop/config/spring-aop-3.0.xsd "> </beans>
-
==============================
3.나는 XML 파일을 잘라내어 같은 위치에 붙여 넣기 만하면된다.
나는 XML 파일을 잘라내어 같은 위치에 붙여 넣기 만하면된다.
-
==============================
4.어떻게 든 applicationContext.xml에 대한 변경 사항은 클래스 경로에서 업데이트되지 않았습니다. 그래서 수동으로 classpath에서 applicationContext.xml 파일을 삭제하고 내 문제를 해결 한 응용 프로그램을 다시 빌드했습니다.
어떻게 든 applicationContext.xml에 대한 변경 사항은 클래스 경로에서 업데이트되지 않았습니다. 그래서 수동으로 classpath에서 applicationContext.xml 파일을 삭제하고 내 문제를 해결 한 응용 프로그램을 다시 빌드했습니다.
-
==============================
5.나는 왜 이런 이상한 행동을하는지 완전히 모릅니다. 나는 또한 같은 예외를 직면하고 Karthikeyan Vaithilingam가 권고 한 것을 따랐다. 그러나 여전히 문제는 해결되지 않습니다. 그래서 필자는 파일을 저장하고 저장 한 내용을 되돌 렸습니다. 비올라!! 예외는 사라졌으며 이제는 오류가 없습니다.
나는 왜 이런 이상한 행동을하는지 완전히 모릅니다. 나는 또한 같은 예외를 직면하고 Karthikeyan Vaithilingam가 권고 한 것을 따랐다. 그러나 여전히 문제는 해결되지 않습니다. 그래서 필자는 파일을 저장하고 저장 한 내용을 되돌 렸습니다. 비올라!! 예외는 사라졌으며 이제는 오류가 없습니다.
from https://stackoverflow.com/questions/27420395/cvc-elt-1-cannot-find-the-declaration-of-element-beans by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 사용할 내용 플러시 모드 '자동'또는 '커밋' (0) | 2019.01.17 |
---|---|
[SPRING] Hibernate는 테이블을 자동으로 생성하지 않는다. (0) | 2019.01.17 |
[SPRING] 새 창에서 pdf 스트림보기 (0) | 2019.01.17 |
[SPRING] PreAuthorize가 컨트롤러에서 작동하지 않습니다. (0) | 2019.01.17 |
[SPRING] Pageable bean을 인스턴스화하지 못했습니다. (0) | 2019.01.17 |