Nem található a Spring NamespaceHandler for XML séma névtér
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 FOLYAMATOT1. 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ó