Nem található a Spring NamespaceHandler for XML séma névtér

Biztonsági top

Most jelentettem be az új Learn Spring Security tanfolyamot, beleértve a Spring Security 5 új OAuth2 veremére összpontosító teljes anyagot:

>> ELLENŐRIZZE A FOLYAMATOT

1. A probléma

Ez a cikk az egyik leggyakoribb konfigurációs problémát tárgyalja tavasszal - az egyik tavaszi névtér névtérkezelője nem található. Legtöbbször ez azt jelenti, hogy egy bizonyos Spring jar hiányzik az osztályútvonalról - tehát nézzük át, mi lehet ezek a hiányzó sémák, és mi az egyes hiányzó függőség.

2. //www.springframework.org/schema/security

A nem elérhető biztonsági névtér a gyakorlatban messze a legszélesebb körben tapasztalt probléma:

Ami a következő kivételhez vezet:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurációs probléma: Nem található a Spring NamespaceHandler for XML séma névtér [//www.springframework.org/schema/security] Sértő erőforrás: osztály elérési útja [securityConfig.xml]

A megoldás egyértelmű - a spring-security-config hiányzik a függőség a projekt osztályútvonalából:

 org.springframework.security spring-security-config 3.2.5.KÖZLEMÉNY 

Ez a megfelelő névtér-kezelőt fogja elhelyezni - ebben az esetben SecurityNamespaceHandler - az osztályúton, és készen áll az elemzésére a Biztonság névtér.

A teljes Maven konfiguráció a teljes tavaszi biztonsági beállításhoz az előző Maven oktatóanyagomban található.

3. //www.springframework.org/schema/aop

Ugyanez a probléma merül fel a használat során is a aop névtér anélkül, hogy az osztálypályán lenne a szükséges aop tavaszi könyvtár:

A pontos kivétel:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurációs probléma: Nem található a Spring NamespaceHandler for XML séma névtér [//www.springframework.org/schema/aop] Sértő erőforrás: ServletContext erőforrás [/ WEB-INF / webCon. xml]

A megoldás hasonló - a tavasz-aop jar hozzá kell adni a projekt classpath-jához:

 org.springframework spring-aop 4.1.0.KÖZLEMÉNY 

Ebben az esetben a AopNamespaceHandler az új függőség hozzáadása után jelen lesz az osztályúton.

4. //www.springframework.org/schema/tx

Használata a tranzakció névterét - egy kicsi, de nagyon hasznos névtér a tranzakciós szemantika konfigurálásához:

akkor is kivételt eredményez, ha a megfelelő üveg nincs az osztályúton:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurációs probléma: Nem található a Spring NamespaceHandler for XML séma névtér [//www.springframework.org/schema/tx] Sértő erőforrás: osztály elérési útja [daoConfig.xml]

A hiányzó függőség itt van tavasz-tx:

 org.springframework spring-tx 4.1.0.KÖZLEMÉNY 

Most, jobbra NamspaceHandler - mégpedig TxNamespaceHandler - ott lesz az osztályúton, amely lehetővé teszi a deklaratív tranzakciókezelést mind XML-sel, mind annotációkkal.

5. //www.springframework.org/schema/mvc

Haladás előre a mvc névtér:

A hiányzó függőség a következő kivételhez vezet:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurációs probléma: Nem található a Spring NamespaceHandler for XML séma névtér [//www.springframework.org/schema/mvc] Sértő erőforrás: osztály elérési útja erőforrás [webConfig.xml]

Ebben az esetben a hiányzó függőség az tavasz-mvc:

 org.springframework spring-webmvc 4.1.0.KÖZLEMÉNY 

Hozzáadva ezt a pom.xml hozzáadja a MvcNamespaceHandler az osztályútra - lehetővé teszi a projekt számára, hogy a névtér használatával konfigurálja az MVC szemantikáját.

6. Következtetés

Végül, ha az Eclipse programot használja a webkiszolgáló kezelésére és a telepítésre, ellenőrizze, hogy a projekt Deployment Assembly szakasza megfelelően van-e konfigurálva - nevezetesen, hogy a Maven-függőségek ténylegesen szerepelnek az osztályúton a telepítéskor.

Ez az oktatóanyag megvitatta az „Nem sikerült megtalálni a Spring NamespaceHandler for XML séma névteret” probléma szokásos gyanúsítottjait, és megoldásokat nyújtott az egyes előfordulásokra.

Biztonsági alsó

Most jelentettem be az új Learn Spring Security tanfolyamot, beleértve a Spring Security 5 új OAuth2 veremére összpontosító teljes anyagot:

>> ELLENŐRIZZE A FOLYAMATOT

$config[zx-auto] not found$config[zx-overlay] not found