springframework.beans.factory.xml.XmlBeanDefinitionStoreException: 通配符的匹配很全面, 但无法找到元素 'tx:advice'

Spring项目启动报2个错

1:无法找到tx:advice声明

   org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: 

Line 52 in XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid;
nested exception is org.xml.sax.SAXParseException; lineNumber: 52; columnNumber: 68;

  cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'tx:advice' 的声明。

2

    java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext


解决方法:在web.xml文件内加上以下代码


contextConfigLocation
classpath:applicationContext.xml

作用:该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数。

param-name 设定上下文的参数名称。必须是唯一名称

param-value 设定的参数名称的值


错误1是因为错误2产生的。一开始直接查了第一个错误,按查到的教程把tx命名空间和标签链接折腾了一个遍,又导入了各种spring-tx的包。检查n遍tx的命名空间和标签连接,也导入了spring-tx-4.0.0.RELEASE.jar包,为了滴这个bug可以说是很崩溃了。弄了一整天后发现居然是忘了在web.xml文件内加context-param,可以说本小白楼主是非常的粗心大意了。。。

xmlns:tx="http://www.springframework.org/schema/tx"

        xsi:schemaLocation="

    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd
   ">

你可能感兴趣的:(spring异常处理)