org.springframework.beans.factory.BeanDefinitionStoreException:从ServletContext资源解析XML文档的意外异常

时间:2011-07-11 10:18:36

标签: java hibernate spring-mvc

我刚开始使用mvc 3和hibernate 3.我需要对以下问题做一些澄清。我对这个问题感到困惑,所以我无法继续下一步。

这是我的dispatch-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>


    <context:component-scan base-package="net.example"/>
    <tx:annotation-driven/>
    <!--
    Most controllers will use the ControllerClassNameHandlerMapping above, but
    for the index controller we are using ParameterizableViewController, so we must
    define an explicit mapping for it.
    -->

    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp" />

</beans>  

因为一旦我包括这一行,我得到了以下错误,我试图解决但没有任何事情发生。

    
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/dispatcher-servlet.xml]; nested exception is java.lang.NoClassDefFoundError: org/springframework/transaction/interceptor/TransactionInterceptor
        org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
        org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
        org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
        org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
        org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
        org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
        org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
        org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:93)
        org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
        org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:465)
        org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395)
        org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442)
        org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458)
        org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339)
        org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306)
        org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127)
        javax.servlet.GenericServlet.init(GenericServlet.java:160)
        org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
        org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
        org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
        org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
        org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
        java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        java.lang.Thread.run(Thread.java:662)

我正在使用spring 3.0.2 RELEASE版本。还包括我的库中的spring-tx.3.0.2.RELEASE.jar(我正在使用netbeans 7.0)

4 个答案:

答案 0 :(得分:10)

您可能错过了类路径中的spring-tx.XXX.jarorg.springframework.transaction.XXX.jar

答案 1 :(得分:2)

使用此:

 <tx:annotation-driven/>

在你的类路径(以及其他人)中需要这个:

org.springframework.transaction-3.1.0.M2.jar

答案 2 :(得分:1)

您缺少 Bean 的起始标记,这就是为什么xml解析器无法解析您的文件

<?xml version="1.0" encoding="UTF-8"?>

<beans>
<context:component-scan base-package="net.example"/>
<tx:annotation-driven/>
<!--
Most controllers will use the ControllerClassNameHandlerMapping above, but
for the index controller we are using ParameterizableViewController, so we must
define an explicit mapping for it.
-->

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/jsp/"
      p:suffix=".jsp" />

</beans>

答案 3 :(得分:0)

将以下代码格式化为单行。

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/jsp/"
      p:suffix=".jsp" />

它可能会解决您的问题。