【问题标题】:DispatcherServlet - Context initialization failed in Roo projectDispatcherServlet - Roo 项目中的上下文初始化失败
【发布时间】:2011-07-28 16:13:34
【问题描述】:

我开发了一个 Roo 项目并部署到 Tomcat 6 服务器。 到目前为止一切正常。

我删除并重新添加了一个实体。

现在每次启动 Tomcat 时,我都会在 Spring Tool Suite 中得到这个异常:

SEVERE: StandardWrapper.Throwable
Throwable occurred: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.handler.MappedInterceptor#0': Cannot create inner bean '(inner bean)' of type [org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': Cannot resolve reference to bean 'applicationConversionService' while setting constructor argument; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [myproject.web.ApplicationConversionServiceFactoryBean] for bean with name 'applicationConversionService' defined in ServletContext resource [/WEB-INF/spring/webmvc-config.xml]; nested exception is java.lang.ClassNotFoundException: myproject.web.ApplicationConversionServiceFactoryBean
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [myproject.web.ApplicationConversionServiceFactoryBean] for bean with name 'applicationConversionService' defined in ServletContext resource [/WEB-INF/spring/webmvc-config.xml]; nested exception is java.lang.ClassNotFoundException: myproject.web.ApplicationConversionServiceFactoryBean
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
...

我需要做什么才能让它再次工作?

【问题讨论】:

    标签: java spring tomcat spring-roo


    【解决方案1】:

    spring 抱怨一个 bean 不可用(可能是你说你删除的那个)。

     exception is java.lang.ClassNotFoundException: myproject.web.ApplicationConversionServiceFactoryBean
    

    尝试搜索配置xml文件并删除对该类的引用,之后应该会恢复,

    【讨论】:

    • 这个类是 Roo 生成的,所以我不想弄乱它。我删除了 webmvc-config.xml 中的引用,但现在另一个类仍然存在错误:org.springframework.beans .factory.BeanCreationException:创建名为“org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#0”的bean时出错:bean初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 'org.springframework.web.servlet.handler.MappedInterceptor#0' 的 bean 时出错:无法创建内部 bean '(inner bean)'
    • 您有一个类似于 <bean ....> <property name="something"> <ref> <bean class="class which has been removed"></ref> </property> </bean>.. 的标签。您需要做的就是删除此引用
    • 请检查配置。必须有另一个相同或相似配置的实例。
    【解决方案2】:

    我也有同样的问题。 问题是我禁用了“项目 > 自动构建”功能,所以我不得不手动构建项目。 一旦我手动构建项目,一切都恢复正常。 :)

    所以,不要忘记在部署之前构建项目,或者只是重新启用“项目 > 自动构建”功能。

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      部署到 Tomcat 的应用在 WEB-INF/lib 中没有包含 myproject.web.ApplicationConversionServiceFactoryBean 类的 jar 文件。我不知道那个类是什么或者你在哪里可以找到它,但它不见了。

      【讨论】:

      • 它通常由 Roo 自动生成。
      【解决方案4】:

      我的解决方法(使用 eclipse 和 roo 1.1.5 作为 eclipse 插件)

      • 打开 ApplicationConversionServiceFactoryBean.java 类
      • 删除类注解@RooConversionService
      • 等待 roo 更新
      • 添加回类注解@RooConversionService
      • 等待 roo 更新,然后重试

      【讨论】:

        【解决方案5】:

        在STS里面,点击->project->clean 它清理并丢弃所有构建问题和构建状态,下次构建发生时,项目将从头开始重建。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-03-17
          • 2014-09-13
          • 2015-09-09
          • 2011-11-23
          • 2016-03-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多