2014-12-11 8 views
8

Próbuję uzyskać obiekt fasoli uwierzytelnić funkcjonalność logowania użytkownika z wiosennych Bezpieczeństwo:CVC-elt.1: Nie można odnaleźć deklarację elementu „fasola”

ApplicationContext context = new ClassPathXmlApplicationContext(
      "com/humandevice/drive/fx/util/applicationContext.xml"); 
    authenticationManager = (AuthenticationManager) context 
      .getBean("authenticationManager"); 

Moja applicationContext.xml jest poniżej:

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

ale otrzymuję ten wyjątek:

Caused by: org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 64; cvc-elt.1: Cannot find the declaration of element 'beans'. 

mam trudności ze zrozumieniem problemu.


Aktualizacja

Zrobiłem kilka zmian do mojego XML jako takie:

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

teraz odbierać ten wyjątek:

lineNumber: 11; columnNumber: 44; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'import'.

Odpowiedz

7

domyślnej przestrzeni nazw jest http://www.springframework.org/schema/security a ty con wymyślił xmlns:beans="http://www.springframework.org/schema/beans" oznacza to, że musisz dodać przedrostek beans: do wszystkich znaczników http://www.springframework.org/schema/beans, więc twój XML powinien wyglądać następująco.

<?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> 
+0

Przekazałem mój kod wraz z tobą i usunięto znaczniki 'alias', ponieważ powodował on błędy, ale teraz dostaję to' Problem z konfiguracją: Nie można zlokalizować Spring NamespaceHandler dla przestrzeni nazw schematów XML [http://www.springframework.org/ schematu/bezpieczeństwa] ' – Asalas77

+0

Czy posiadasz plik' spring-security-config' jar w ścieżce klasy? –

+0

Pamiętam, że dodałem go do pom.xml, ale go tam nie było, więc dodałem go. Teraz dokonałem pewnych zmian i zaktualizowałem pytanie. Proszę spojrzeć. – Asalas77

1

Ten kod pomoże.

<?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> 
2

Dla mnie po prostu nie wyciąć i wkleić i zapisać plików XML w tym samym miejscu i pracował dla mnie !!

Powiązane problemy