Nemožno nájsť Spring NamespaceHandler pre XML Schema Namespace

Zabezpečenie Najlepšie

Práve som oznámil nový kurz Learn Spring Security vrátane úplného materiálu zameraného na nový zásobník OAuth2 vo Spring Security 5:

>> SKONTROLUJTE KURZ

1. Problém

Tento článok bude pojednávať o jednom z najbežnejších problémov s konfiguráciou na jar - obslužný program menného priestoru pre jeden z jarných menných priestorov nebol nájdený. Väčšinou to znamená, že v triede chýba jedna konkrétna jarná nádoba - poďme si teda predstaviť, čo by tieto chýbajúce schémy mohli byť a aká je chýbajúca závislosť pre každú z nich.

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

Priestor názvov zabezpečenia, ktorý nie je k dispozícii, je zďaleka najbežnejším problémom v praxi:

Čo vedie k nasledujúcej výnimke:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfiguračný problém: Nie je možné nájsť Spring NamespaceHandler pre priestor názvov schémy XML [//www.springframework.org/schema/security] Neoprávnený zdroj: prostriedok cesty k triede [securityConfig.xml]

Riešenie je priame - spring-security-config v triede projektu chýba závislosť:

 org.springframework.security spring-security-config 3.2.5.RELEASE 

Týmto sa v tomto prípade nastaví správny obslužný program menného priestoru SecurityNamespaceHandler - na triednej ceste a pripravený analyzovať prvky v bezpečnosť menný priestor.

Kompletnú konfiguráciu Maven pre úplné nastavenie Spring Security nájdete v mojom predchádzajúcom návode Maven.

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

Rovnaký problém nastáva aj pri používaní the aop menný priestor bez potrebnej knižnice aop jar na triednej ceste:

Presná výnimka:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfiguračný problém: Nie je možné nájsť Spring NamespaceHandler pre priestor názvov schémy XML [//www.springframework.org/schema/aop] Zdroj, ktorý porušuje pravidlá: Zdroj ServletContext [/ WEB-INF / webConfig. xml]

Riešenie je podobné - jar-aop jar musí byť pridaný do triedy projektu:

 org.springframework spring-aop 4.1.0.RELEASE 

V takom prípade AopNamespaceHandler sa po pridaní novej závislosti bude nachádzať na ceste ku triede.

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

Použitím menný priestor transakcie - malý, ale veľmi užitočný priestor mien na konfiguráciu transakčnej sémantiky:

bude mať za následok tiež výnimku, ak sa na nádobe nenachádza správny džbán:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfiguračný problém: Nie je možné nájsť Spring NamespaceHandler pre priestor názvov schémy XML [//www.springframework.org/schema/tx] Neoprávnený zdroj: prostriedok cesty k triede [daoConfig.xml]

Chýba tu závislosť jar-tx:

 org.springframework spring-tx 4.1.0.RELEASE 

Teraz, správne NamspaceHandler - menovite TxNamespaceHandler - bude prítomný v triede, ktorá umožňuje deklaratívnu správu transakcií s XML aj anotáciami.

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

Vpred do the mvc menný priestor:

Chýbajúca závislosť povedie k nasledujúcej výnimke:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfiguračný problém: Nie je možné nájsť Spring NamespaceHandler pre priestor názvov schémy XML [//www.springframework.org/schema/mvc] Neoprávnený zdroj: prostriedok cesty k triede [webConfig.xml]

V tomto prípade chýba závislosť jar-mvc:

 org.springframework spring-webmvc 4.1.0.RELEASE 

Pridanie tohto do pom.xml pridá MvcNamespaceHandler na cestu ku triede - umožňuje projektu konfigurovať sémantiku MVC pomocou menného priestoru.

6. Záver

Nakoniec, ak na správu webového servera a nasadenie používate Eclipse - uistite sa, že je správne nakonfigurovaná časť Deployment Assembly v projekte - teda, že závislosti Maven sú v skutočnosti v čase nasadenia na ceste k triede zahrnuté.

V tomto výučbe sa diskutovalo o obvyklých podozrivých z problému „Nemožno nájsť Spring NamespaceHandler pre priestor názvov schémy XML“ a poskytli sme riešenia pre každý výskyt.

Bezpečnostné dno

Práve som oznámil nový kurz Learn Spring Security vrátane úplného materiálu zameraného na nový zásobník OAuth2 vo Spring Security 5:

>> SKONTROLUJTE KURZ

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