Spring 3.0 - XML ​​şeması ad alanı için Spring NamespaceHandler bulunamadı [http://www.springframework.org/schema/security]


179

Bunun nedeni ne olabilir?

XML şema ad alanı için Spring NamespaceHandler bulunamadı [ 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]

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

Benim pom.xml dosyamda:

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

Ben Bahar pizzashop öğretici
Rob Grant

Bu tam pom.xml mi? Çünkü o zaman büyük olasılıkla bir kavanoz eksik.
Marco Schoolenberg

Yanıtlar:


286

Ek bir Maven bağımlılığı eklemem gerekiyordu:

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

3
+1 Sorunumu çözmek için. Yay güvenliği 3.0 kod tabanının yeniden yapılandırılması hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: blog.springsource.com/2009/06/03/spring-security-300m1-released
Rydell

Güzel bağlantı. Bunu birkaç ay önce de kullanabilirdim.
Taylor Leese

12
Bacon yine SO tarafından kurtarıldı!
Andrew Swan

Benzer bir çözüm sadece spring-security-caskavanozu kullanmaya çalışırken geçerlidir .
Ryan Ransford

Sorunlu olanlar için bu bağlantıyı öneriyorum Unable to locate Spring NamespaceHandler for XML schema namespace [xxxxx]. Geçmişte benzer bir sorunum vardı ve bu bana çok yardımcı oldu!
Cotta

18

Uygulamayı dağıtmaya çalışırken aynı hata iletisiyle karşılaştım. İlkbaharda, güvenlik yapılandırması xml, WEB-INF klasörü içindeki applicationContext-security.xml olan applicationContext.xml dosyasından farklı olabilir. Uygulanacak değişiklikler web.xml içindir

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

Ve applicationContext.xml şöyle görünür:

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

Bu değişiklikleri yaptıktan sonra bile, ad alanı hatası oluşacaktır. Bundan kurtulmak için, aşağıdaki jar dosyalarını WEB-INF / lib dosyasına ve ardından kütüphaneye ekleyin:

  • Yay-security-acl'ler-3.1.0.M2.jar
  • Yay-security-config-3.1.0.M2.jar
  • Yay güvenlik çekirdekli 3.1.0.M2.jar
  • Yay-security-taglibs-3.1.0.M2.jar
  • Yay-security-web 3.1.0.M2.jar

Spring'i başlatmak için Maven'i kullanmak zorundasınız. Ve isteksizce bunu yaptığınızda, hala işe yaramaz! Birisi, bir yerlerde sert gülüyor ... Bu cevap hayal kırıklığımı biraz azaltmaya yardımcı oldu.
Arne Evertsson

12

Bir süre bununla mücadele ettim ve bu cevapların hiçbiri işe yaramadı. User64141'den gelen yorum sayesinde spring.handlersdosyalar ile ilgili bir sorun olduğunu fark ettim .

Maven için bir yağ kavanozu oluşturmak için Shade eklentisini kullanıyorum ve tüm spring.handlers(ve spring.schemas) dosyaların her bir Bahar bağımlılığı tarafından üzerine yazılıyordu.

Maven sitesi bu tam sorunu ve bunun yerine dosyaları bir araya getirerek nasıl çözüleceğini kapsar:

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


8

Bahar-güvenlik-yapılandırma kavanozunu kullandım, bu benim için sorunu çözdü


6

Çözüm kesinlikle "spring-security-config" dir WEB-INF / lib dosyasında değil.

Malip kullanan Eclipse'deki projem için, maven bağımlılıklarının hepsi WEB-INF / lib'e kopyalanmadığı ortaya çıktı. Proje -> Özellikler -> Dağıtım Meclisi'ne bakıldığında, kavanozların sadece bir kısmı kopyalanıyor.

Bunu düzeltmek için "Ekle" yi, ardından "Java Oluşturma Yolu Entires" i ve son olarak "Maven Bağımlılıkları" nı tıkladım.

Ben son arama için SO ve web arıyor, bu yüzden umarım bu başka birine yardımcı olur.


3

Maven Bağımlılıklarının güzel bir listesi şu adreste bulunur: Bahar Alanı Gerekli başlıca eserler:

  1. Yay güvenlik çekirdekli
  2. İlkbahar-güvenlik-web
  3. yay güvenlik-config

3

@James Jithin - böyle bir istisna xsi'de iki farklı fasulye ve güvenlik şeması sürümünüz olduğunda da görünebilir: schemaLocation. Pasajda yapıştırdığınız durum budur:

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"

Benim durumumda ikisini de 3.1 olarak değiştirmek sorunu çözdü


Ben sadece onunla çalışmak başardı: http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/security/spring-security-3.2.xsd Benim durumumda 'bahar-güvenlik-yapılandırma' kavanoz eksik vardı.
Ithar

Bu yorumu kabul etti. Bu nedenle benim sorunum vardı.
DolphinJava

2

Ben ne yaptım:

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

ve

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

mükemmel çalışır. Daha Fazla Baeldung


0


Pom'nızda zaten tüm bağımlılıklar varsa, şunu deneyin: 1. 'org-> springframework' için maven depo klasörünüzden indirilen tüm kavanozları kaldırın
2. Bir maven temiz yapı oluşturun.


0

Bugün çok benzer bir sorunla karşılaştım. Bazı nedenlerden dolayı IntelliJ IDEA, uygulamayı dağıtırken Spring Security jar dosyalarını dahil etmediniz. Bence buradaki posterlerin çoğuna katılmalıyım.


0

Bu hatayı Başak'a dağıtırken aldım. Çözüm, bunu paket ithalatlarıma eklemekti:

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

META-INF altındaki Bahar kavanozlarında bir spring.schemas ve bir spring.handler bölümü olduğunu ve işaret ettikleri sınıfın (bu durumda org.springframework.transaction.config.TxNamespaceHandler) içe aktarılması gerektiğini fark ettim.



0

Aynı problemi birkaç dakika önce yaşadım, Dağıtım Meclisimdeki 'Maven depencendies' kütüphanesini kaçırıyordum. Eclipse'deki 'Web Dağıtım Meclisi' bölümünden ekledim


0

bağımlılık eklemek sorununuzu çözmediyse, tekrar WAR arşivi oluşturun. Benim durumumda, güvenlik ağı ve güvenlik conf kavanozları olmadan eski WAR dosyasını kullandım


0

Pom.xml dosyanıza aşağıdaki bağımlılığı ekleyin ve IntelliJ kullanıyorsanız aynı kavanozları WEB-INF-> lib klasörüne ekleyin ... path, Project Structure -> Atrifacts -> Available Elements bölmesinden jar seçin ve çift Tıklayın. İlgili klasöre eklenir

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.