2014-12-11 24 views
8

Sto cercando di ottenere un oggetto di fagioli per autenticare la funzionalità di accesso utente con Primavera di sicurezza:CVC-elt.1: Impossibile trovare la dichiarazione di elemento '' fagioli

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

mio applicationContext.xml è qui sotto:

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

ma ottengo questa eccezione:

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

sto avendo difficoltà a comprendere il problema.


Aggiornamento

Ho fatto alcuni cambiamenti alla mia XML come tale:

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

io ora ricevo questa eccezione:

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

risposta

7

lo spazio dei nomi di default è http://www.springframework.org/schema/security e tu con calcolato xmlns:beans="http://www.springframework.org/schema/beans" significa che devi aggiungere il prefisso beans: a tutto il modulo di tag http://www.springframework.org/schema/beans così il tuo XML dovrebbe essere il seguente.

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

Ho sostituito il mio codice con il tuo e rimosso i tag 'alias' perché causava errori, ma ora ho questo' Problema di configurazione: Impossibile trovare Spring NamespaceHandler per lo spazio dei nomi dello schema XML [http://www.springframework.org/ schema/sicurezza] ' – Asalas77

+0

Hai un jar' spring-security-config' nel tuo percorso di classe? –

+0

Ricordo di averlo aggiunto a pom.xml ma non c'era, quindi l'ho aggiunto. Ora ho apportato alcune modifiche e aggiornato la domanda. Per favore dai un'occhiata. – Asalas77

1

Questo codice ti aiuterà.

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

Per me ho appena tagliato e incollato e salvato file XML nello stesso posto e ha funzionato per me !!

Problemi correlati