Des idées quelle pourrait être la cause de ceci?
Impossible de localiser Spring NamespaceHandler pour l'espace de noms de schéma XML [ http://www.springframework.org/schema/security]
org.springframework.web.context.ContextLoader initWebApplicationContext: Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]
Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml]
Ceci est mon applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
...
</beans:beans>
Dans mon pom.xml j'ai:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-openid</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
J'avais besoin d'ajouter une dépendance Maven supplémentaire:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
J'ai eu le même message d'erreur en essayant de déployer l'application. Au printemps, le fichier XML de configuration de la sécurité peut être différent de celui de applicationContext.xml, généralement applicationContext-security.xml dans le dossier WEB-INF. Les modifications à appliquer concernent web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
/WEB-INF/applicationContext-security.xml
</param-value>
</context-param>
Et l'applicationContext.xml ressemblerait à ceci:
<?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-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<http auto-config='true'>
<intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page='login.jsp'/>
</http>
</beans:beans>
Même après avoir apporté ces modifications, l'erreur d'espace de nom existera. Pour vous en débarrasser, ajoutez les fichiers JAR suivants au fichier WEB-INF/lib, puis à la bibliothèque:
J'ai eu du mal avec cela pendant un moment et aucune de ces réponses n'a aidé. Grâce au commentaire de user64141 , j'ai réalisé qu'il y avait un problème avec les fichiers spring.handlers
.
J'utilise le plug-in Shade pour Maven pour générer un gros fichier .Jar, et tous les fichiers spring.handlers
(et spring.schemas
) étaient écrasés par chaque dépendance Spring.
Le site Maven couvre ce problème précis et comment le résoudre en ajoutant les fichiers ensemble:
J'ai utilisé spring-security-config jar cela a résolu le problème pour moi
La solution est définitivement "spring-security-config" pas dans votre WEB-INF/lib.
Pour mon projet sous Eclipse avec Maven, il s’est avéré que toutes les dépendances de maven n’étaient pas copiées dans WEB-INF/lib. En regardant Projet -> Propriétés -> Assemblage de déploiement, seuls certains des pots ont été copiés.
Pour résoudre ce problème, j'ai cliqué sur "Ajouter", puis "Java Build Path Entires" et enfin "Dépendances Maven".
Je cherche SO et le Web depuis une heure à la recherche de cette information. J'espère donc que cela aidera quelqu'un d'autre.
@ James Jithin - une telle exception peut également apparaître lorsque vous avez deux versions différentes de beans et un schéma de sécurité dans xsi: schemaLocation. C'est le cas dans l'extrait que vous avez collé:
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd"
Dans mon cas, les changer tous les deux en 3.1 a résolu le problème
Une belle liste de dépendances Maven existe à l'adresse suivante: Spring Site Les principaux artefacts nécessaires sont:
Ce que j'ai fait:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>3.2.5.RELEASE</version>
</dependency>
et
xsi:schemaLocation="
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
fonctionne parfaitement. Plus Baeldung
J'ai trouvé cette solution:
Inclure ce pot dans votre projet
si l'ajout de dépendances n'a pas résolu votre problème, créez à nouveau une archive WAR. Dans mon cas, j'ai utilisé un fichier WAR obsolète sans jars security-web et security-conf
Si j'avais le même problème il y a quelques minutes, il me manquait la bibliothèque "Dépendances des dépendants" dans mon Assemblée de déploiement. Je l'ai ajouté via la section "Web Deployment Assembly" dans Eclipse
Ajoutez la dépendance suivante dans votre fichier pom.xml. Si vous utilisez IntelliJ, ajoutez les mêmes fichiers JAR dans le dossier WEB-INF-> lib. Cliquez sur. Il va ajouter au dossier respectif
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
J'ai rencontré le problème très similaire aujourd'hui. Pour une raison quelconque, IntelliJ IDEA
n'a pas inclus les fichiers jar de Spring Security lors du déploiement de l'application. Je pense que je devrais être d'accord avec la majorité des affiches ici.
Si vous avez déjà toutes les dépendances dans votre pom, essayez:
1. Supprimez tous les fichiers téléchargés de votre dossier de référentiel maven pour 'org-> springframework'
2. Faites un maven propre.
J'ai eu cette erreur lors du déploiement sur Virgo. La solution consistait à ajouter ceci à mes importations de bundles:
org.springframework.transaction.config;version="[3.1,3.2)",
J'ai remarqué que dans les pots Spring sous META-INF, il y avait une section spring.schemas et une section spring.handlers, et que la classe à laquelle elles pointent (dans ce cas, org.springframework.transaction.config.TxNamespaceHandler) doit être importée.