cvc-elt.1:找不到元素'beans'的声明

我正在尝试获取一个bean对象以使用Spring Security验证用户登录功能:

    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: The matching wildcard is strict, but no declaration can be found for element 'import'.

回答:

你的默认名称空间是,http://www.springframework.org/schema/security并且你配置了它,xmlns:beans="http://www.springframework.org/schema/beans"这意味着你必须将前缀添加beans:到所有标签形式,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>

以上是 cvc-elt.1:找不到元素&#39;beans&#39;的声明 的全部内容, 来源链接: utcz.com/qa/421662.html

回到顶部