Kan ikke finde Spring NamespaceHandler til XML Schema Namespace

Sikkerhedstop

Jeg annoncerede netop det nye Learn Spring Security-kursus, inklusive det fulde materiale med fokus på den nye OAuth2-stak i Spring Security 5:

>> KONTROLLER KURSEN

1. Problemet

Denne artikel vil diskutere et af de mest almindelige konfigurationsproblemer i foråret - en navnehåndterer for et af forårets navneområder blev ikke fundet. Det meste af tiden betyder det, at en bestemt Spring jar mangler fra klassestien - så lad os gå over, hvad disse manglende skemaer kan være, og hvad den manglende afhængighed er for hver enkelt.

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

Sikkerhedsnavnet, der ikke er tilgængeligt, er langt det mest almindelige problem i praksis:

Hvilket fører til følgende undtagelse:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurationsproblem: Kan ikke finde Spring NamespaceHandler til XML-skemaens navneområde [//www.springframework.org/schema/security] Stødende ressource: klasse stieressource [securityConfig.xml]

Løsningen er ligetil - den spring-security-config afhængighed mangler fra projektets klassesti:

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

Dette vil placere den korrekte navnehåndterer - i dette tilfælde SikkerhedNamespaceHandler - på klassestien og klar til at analysere elementerne i sikkerhed navneområde.

Den komplette Maven-konfiguration til en fuld Spring Security-opsætning kan findes i min tidligere Maven-tutorial.

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

Det samme problem opstår, når du bruger det aop navneområde uden at have det nødvendige aop-forårsbibliotek på klassestien:

Den nøjagtige undtagelse:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurationsproblem: Kan ikke finde Spring NamespaceHandler til XML-skemaens navneområde [//www.springframework.org/schema/aop] Stødende ressource: ServletContext-ressource [/ WEB-INF / webConfig. xml]

Løsningen er ens - den spring-aop jar skal tilføjes til klassestien til projektet:

 org.springframework spring-aop 4.1.0.RELEASE 

I dette tilfælde er AopNamespaceHandler vil være til stede på klassestien efter tilføjelse af den nye afhængighed.

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

Ved brug af transaktionens navneområde - et lille, men meget nyttigt navneområde til konfiguration af transaktionssemantikken:

vil også resultere i en undtagelse, hvis den rigtige krukke ikke er på klassestien:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurationsproblem: Kan ikke finde Spring NamespaceHandler til XML-skema navneområde [//www.springframework.org/schema/tx] Stødende ressource: ressource for klassesti [daoConfig.xml]

Den manglende afhængighed her er fjeder-tx:

 org.springframework spring-tx 4.1.0.RELEASE 

Nu, det rigtige NamspaceHandler - nemlig TxNamespaceHandler - vil være til stede på klassestien, der tillader den deklarative transaktionsstyring med både XML og annoteringer.

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

Gå videre til det mvc navneområde:

Den manglende afhængighed vil føre til følgende undtagelse:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurationsproblem: Kan ikke finde Spring NamespaceHandler til XML-skema navneområde [//www.springframework.org/schema/mvc] Stødende ressource: klasse stieressource [webConfig.xml]

I dette tilfælde er den manglende afhængighed fjeder-mvc:

 org.springframework spring-webmvc 4.1.0.RELEASE 

Tilføjelse af dette til pom.xml vil tilføje MvcNamespaceHandler til klassestien - så projektet kan konfigurere MVC-semantik ved hjælp af navneområdet.

6. Konklusion

Endelig, hvis du bruger Eclipse til at styre webserveren og implementere - sørg for, at afsnittet Implementeringssamling i projektet er korrekt konfigureret - nemlig at Maven-afhængigheder faktisk er inkluderet på klassestien ved implementeringstidspunktet.

Denne vejledning diskuterede de sædvanlige mistænkte for problemet "Ikke i stand til at finde Spring NamespaceHandler til XML-skema-navneområde" og leverede løsninger til hver begivenhed.

Sikkerhedsbund

Jeg annoncerede netop det nye Learn Spring Security-kursus, inklusive det fulde materiale med fokus på den nye OAuth2-stak i Spring Security 5:

>> KONTROLLER KURSEN

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