`
weitao1026
  • 浏览: 1053542 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring的一个命名空间的名称空间处理程序没有找到

 
阅读更多
1. 问题

本文将讨论Spring中最常见的配置问题 —— Spring的一个命名空间的名称空间处理程序没有找到。 大多数情况下,是由于一个特定的Spring的jar没有配置在classpath下,让我们列出多数可能出现的缺失配置以及导致的异常。





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

安全名称空间可能是迄今为止在实践中遇到的最广泛的问题:


复制代码
<?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"
    xsi:schemaLocation="
        http://www.springframework.org/schema/security
        http://www.springframework.org/schema/security/spring-security-3.1.xsd
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

</beans:beans>

复制代码

导致以下异常:

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: class path resource [securityConfig.xml]

解决方法很简单 —— 把spring-security-config的jar配置在classpath中(如:maven的pom.xml):

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

配置正确的名称空间处理程序 —— 在这种情况下classpath下的SecurityNamespaceHandler会解析安全名称空间中的元素。



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

发生在使用aop名称空间时,没有将相应的spring的jar配置在classpath下:


复制代码
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">

</beans>

复制代码

导致以下异常:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem:
Unable to locate Spring NamespaceHandler for XML schema namespace
[http://www.springframework.org/schema/aop]
Offending resource: ServletContext resource [/WEB-INF/webConfig.xml]

解决方法与问题2类似,只需将spring-aop的jar配置calsspath下:

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-aop</artifactId>
   <version>3.2.5.RELEASE</version>
</dependency>



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

使用事务名称空间 —— 一个小但非常有用的名称空间配置:


复制代码
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">

</beans>

复制代码

导致以下异常:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem:
Unable to locate Spring NamespaceHandler for XML schema namespace
[http://www.springframework.org/schema/tx]
Offending resource: class path resource [daoConfig.xml]

解决方法,将事务的jar配置到classpath下:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>3.2.5.RELEASE</version>
</dependency>



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

下面是spring的mvc名称空间


复制代码
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

</beans>

复制代码

导致以下异常:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem:
Unable to locate Spring NamespaceHandler for XML schema namespace
[http://www.springframework.org/schema/mvc]
Offending resource: class path resource [webConfig.xml]

遇到这种异常,是因为没有将spring的mvc的jar配置在classpath中:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.2.5.RELEASE</version>
</dependency>



6.结论

最后,如果你是使用Eclipse来管理web服务器和部署,确保部署的组装部分项目是配置正确的 —— 即Maven的依赖,实际上是在部署时包含在类classpath中。


分享到:
评论

相关推荐

    SpringSecurity笔记2-SpringSecurity命名空间

    在"SpringSecurity笔记2-SpringSecurity命名空间"这个主题中,我们将深入探讨SpringSecurity配置的核心——命名空间。 SpringSecurity通过XML配置文件中的命名空间来简化设置过程,这些命名空间提供了丰富的元素和...

    Spring框架如何使用P命名空间进行注入

    因此,掌握 P 命名空间依赖注入机制是 Spring 框架开发中的一个重要技能。 在本文中,我们通过示例代码详细介绍了 Spring 框架如何使用 P 命名空间进行依赖注入,包括了 Bean 的配置、 setter 方法的使用、依赖关系...

    spring-override:命名空间处理程序,允许在模块化环境中覆盖,扩展或修改Spring Bean

    该库提供了XML名称空间处理程序,该处理程序允许在模块化环境中覆盖,扩展或修改bean。 该代码最初由和于2007年编写,是。 因此,所有功劳归功于他们。 由于Pivotal了Spring DM项目,所以我认为riot的实用覆盖功能...

    spring-扩展点-namespacehandler(Spring自定义标签)

    在Spring框架中,扩展点是允许用户自定义行为的关键组件,而`NamespaceHandler`就是其中的一个重要扩展点,主要用于处理自定义的XML命名空间。当我们需要在Spring配置文件中引入自定义标签时,`NamespaceHandler`起...

    spring-security 官方文档 中文版

    - **命名空间的设计**:Spring Security 提供了一个专用的 XML 命名空间来简化安全性配置。 - **开始使用安全命名空间配置**: - **配置 web.xml**:需要在 web.xml 中配置 Spring Security 的 Filter,以便处理 ...

    spring security 参考手册中文版

    设置一个自定义的AuthenticationEntryPoint 64 6.4方法安全 64 6.4.1 元素 65 使用protect-pointcut添加安全性切入点 66 6.5默认AccessDecisionManager 67 6.5.1自定义AccessDecisionManager 67 6.6验证管理器和命名...

    spring(一)–概念和历史/hellospring/IOC创建对象的方式/Spring配置/set注入/c命名和p命名空间注入/bean的作用域

    Spring是一个全面的Java应用程序框架,它的出现是为了简化企业级应用的开发,尤其是在J2EE环境中。Spring的核心理念是依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称...

    spring 配置文件详解.txt

    Spring框架是Java平台上的一个开源框架,它提供了一种轻量级的方式来管理和组织Java应用程序中的组件。Spring框架的核心特性之一是依赖注入(Dependency Injection,DI),它使得组件之间的耦合度降低,并提高了代码...

    Spring笔记.docx

    为了能够在项目中使用上述注解,需要确保Spring配置文件中添加了相应的命名空间,以及开启了对注解的支持。通常情况下,需要在Spring配置文件中加入以下内容: ```xml ``` 这行配置告诉Spring容器去扫描指定包...

    Spring系列面试题129道(附答案解析)

    在Spring中可以通过在XML配置文件中添加context命名空间并声明注解驱动元素,或者使用Java配置类上的注解(如@ComponentScan)来启动注解装配。 27、@Component,@Controller,@Repository,@Service有何区别? 这些...

    Spring框架web项目实战全代码分享

    - `xmlns`定义了XML命名空间,避免标签名称冲突。 - `xsi:schemaLocation`指定了XML文件遵循的规范,这里是Spring的bean定义规范。 - `default-lazy-init`和`default-autowire`分别定义了默认的bean初始化方式...

    Spring MVC 4.2.4.RELEASE 中文文档v

    Spring MVC 4.2.4.RELEASE 是 Spring Framework 中一个重要的 Web 框架版本,它提供了一套全面的解决方案来构建 Web 应用程序。Spring MVC 是建立在 Spring 的核心功能之上,为基于模型-视图-控制器(MVC)设计模式...

    spring_ioc.docx

    - **其他注入形式:** 常量注入、Bean 注入、数组注入、List 注入、Map 注入、Set 注入、null 注入、Properties 注入、p 命名空间注入和 c 命名空间注入。 **4. Bean 的作用域:** - **Singleton:** 默认作用域...

    Spring2.5的新特性

    在没有应用程序服务器的环境中,Spring也能处理这种注解,将匹配的bean注入到目标字段或方法。 - **@PostConstruct**:标记初始化方法,这些方法在对象创建后但在其依赖注入完成之前调用。 - **@PreDestroy**:...

    Spring Reference - Core Technologies.pdf

    除了依赖的注入之外,还需要关注依赖的配置细节,如集合类型、空和空字符串值的处理、XML命名空间的快捷方式等。 1.4.3 使用depends-on 使用depends-on属性可以明确指定一个或多个Bean依赖其他Bean,以确保依赖的...

    3、结合spring and propetries1

    接着,我们定义了一个`ActiveMQQueue` bean,指定消息队列的名字为“spring-queue”。 接下来,配置`JmsTemplate`,它是Spring提供的一个工具类,用于简化JMS操作。`JmsTemplate`需要一个`ConnectionFactory`来建立...

Global site tag (gtag.js) - Google Analytics