it-swarm.com.de

Spring 3.0 - Spring NamespaceHandler für XML-Schema-Namespace kann nicht gefunden werden [http://www.springframework.org/schema/security]

Irgendwelche Ideen, woran das liegen könnte?

Spring NamespaceHandler für XML-Schema-Namespace [ http://www.springframework.org/schema/security] konnte nicht gefunden werden

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]

Dies ist meine 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>

In meiner pom.xml habe ich:

<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>
175
Taylor Leese

Ich musste eine zusätzliche Maven-Abhängigkeit hinzufügen:

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>3.0.1.RELEASE</version>
    </dependency>
285
Taylor Leese

Ich hatte die gleiche Fehlermeldung beim Versuch, die Anwendung bereitzustellen. In Spring kann sich die Sicherheitskonfiguration xml von applicationContext.xml unterscheiden, normalerweise applicationContext-security.xml im Ordner WEB-INF. Die anzuwendenden Änderungen gelten für web.xml

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext.xml
        /WEB-INF/applicationContext-security.xml
    </param-value>
</context-param>

Und die applicationContext.xml würde so aussehen:

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

Auch nachdem Sie diese Änderungen vorgenommen haben, liegt der Namespace-Fehler vor. Um dies zu beheben, fügen Sie die folgenden JAR-Dateien zur WEB-INF/lib und anschließend zur Bibliothek hinzu:

  • spring-security-acl-3.1.0.M2.jar
  • spring-security-config-3.1.0.M2.jar
  • spring-security-core-3.1.0.M2.jar
  • spring-security-taglibs-3.1.0.M2.jar
  • spring-security-web-3.1.0.M2.jar
18
James Jithin

Ich kämpfte eine Weile damit und keine dieser Antworten half. Dank des Kommentars von user64141 wurde mir klar, dass ein Problem mit dem spring.handlers Dateien.

Ich benutze das Shade-Plugin für Maven, um ein fettes Glas zu generieren, und alle spring.handlers (und spring.schemas) Dateien wurden von jeder Spring-Abhängigkeit überschrieben.

Die Maven-Site behandelt genau dieses Problem und wie man es löst, indem man die Dateien stattdessen zusammenfügt:

http://maven.Apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer

11
Patrick Herrera

Ich habe spring-security-config jar verwendet, um das Problem für mich zu lösen

8
abhiram

Die Lösung ist definitiv "spring-security-config", nicht in Ihrer WEB-INF/lib.

Bei meinem Projekt in Eclipse mit Maven stellte sich heraus, dass nicht alle Maven-Abhängigkeiten in WEB-INF/lib kopiert wurden. Unter Projekt -> Eigenschaften -> Bereitstellungsassembly wurden nur einige der Gläser kopiert.

Um dies zu beheben, klickte ich auf "Hinzufügen", dann auf "Java Build Path Entires" und schließlich auf "Maven Dependencies".

Ich habe SO und das Web in der letzten Stunde danach gesucht, also hilft das hoffentlich jemand anderem.

6

@James Jithin - Eine solche Ausnahme kann auch auftreten, wenn Sie zwei verschiedene Versionen von Beans und Sicherheitsschemas in xsi haben: schemaLocation. Dies ist in dem von Ihnen eingefügten Snippet der Fall:

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"

In meinem Fall wurde das Problem behoben, indem beide auf 3.1 geändert wurden

3
ForestierSimon

Eine nette Liste von Maven-Abhängigkeiten gibt es unter: Spring Site Die wichtigsten benötigten Artefakte sind:

  1. federsicherheitskern
  2. Frühling-Sicherheitsnetz
  3. spring-security-config

Was ich getan habe:

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

und

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

funktioniert einwandfrei. Mehr Baeldung

1
Xelian
0
Avinash

wenn das Hinzufügen von Abhängigkeiten Ihr Problem nicht gelöst hat, erstellen Sie das WAR-Archiv erneut. In meinem Fall habe ich eine veraltete WAR-Datei ohne Security-Web- und Security-Conf-Jars verwendet

0
Zimbo Rodger

Hatte vor ein paar Minuten das gleiche Problem, fehlte mir die Bibliothek 'Maven Depencendies' in meiner Deployment Assembly. Ich habe es über den Abschnitt 'Web Deployment Assembly' in Eclipse hinzugefügt

0
GreyStar

Fügen Sie die folgende Abhängigkeit in Ihre pom.xml-Datei ein und fügen Sie, wenn Sie IntelliJ verwenden, dieselben Jars zum Ordner WEB-INF-> lib hinzu klicken. Es wird zum entsprechenden Ordner hinzugefügt

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>
0
Sia

Ich bin heute auf ein sehr ähnliches Problem gestoßen. Aus irgendeinem Grund IntelliJ IDEA Spring Security-JAR-Dateien wurden bei der Bereitstellung der Anwendung nicht berücksichtigt. Ich denke, ich sollte mit der Mehrheit der Poster hier einverstanden sein.

0
shapiy

Wenn Sie bereits alle Abhängigkeiten in Ihrem POM haben, versuchen Sie Folgendes:
1. Entfernen Sie alle heruntergeladenen Jars aus Ihrem Maven-Repository-Ordner für 'org-> springframework'.
2. Mache einen Maven sauber.

0
arviarya

Ich habe diesen Fehler beim Deployment auf Virgo erhalten. Die Lösung bestand darin, dies zu meinen Bundle-Importen hinzuzufügen:

org.springframework.transaction.config;version="[3.1,3.2)",

Ich habe in den Spring-Jars unter META-INF festgestellt, dass es einen spring.schemas- und einen spring.handlers-Abschnitt gibt und die Klasse, auf die sie zeigen (in diesem Fall org.springframework.transaction.config.TxNamespaceHandler) importiert werden muss.

0
user64141