【问题标题】:Spring multi module fails to deploy with m2eclipse build due applicationContext.xml not loaded由于未加载 applicationContext.xml,Spring 多模块无法使用 m2eclipse 构建部署
【发布时间】:2012-09-28 23:01:54
【问题描述】:

基本上我有一个多模块应用程序:

数据 商业 网络应用

在 web-app 部分有 web.xml 使用此配置加载不同的 applicationContext.xml 配置文件:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:META-INF/spring/applicationContext.xml</param-value>
</context-param>

[...]

<!-- Handles Spring requests -->
<servlet>
    <servlet-name>empp-v2-web</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/spring/webmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

我的其他两个模块各有一个 META-INF/spring/applicationContext.xml。 在 webmvc-config.xml 中,我只对带有 @Controller 注释的类进行组件扫描,同时在 applicationContext 中,我扫描除了控制器之外的基本包中的所有内容。

问题是,当我尝试在控制器中自动装配 bean 时,我总是得到 NoSuchBeanDefinitionException。 这发生在 Eclipse 中配置的服务器上使用“添加和删除”将应用程序作为爆炸项目运行。如果我在同一台服务器上手动构建和部署应用程序,则应用程序可以正常工作并且 bean 会自动装配。 m2eclipse 需要一些特殊的配置吗? 对我来说,在这种情况下似乎没有加载 applicationContext.xml。 如何验证 m2eclipse 是否在正确的位置处理资源文件?

【问题讨论】:

  • 第一枪是在Eclipse中检查META-INF是否在项目的类路径中。
  • META-INF 在资源文件夹中,它作为源文件夹在类路径中

标签: spring m2eclipse multi-module


【解决方案1】:

似乎 m2eclipse 和在类路径中加载多个应用程序上下文存在一些问题。对我来说唯一的解决方案是将所有 spring 配置都放在主 Web 应用程序应用程序上下文中。该解决方案既适用于打包的 EAR,也适用于在 eclipse 中运行的爆炸式应用程序。

【讨论】:

    【解决方案2】:

    你安装m2e-wtp了吗?你要部署到哪台服务器上?您应该将通过 WTP 部署的爆炸战争的内容与战争档案的内容进行比较,看看是否缺少某些内容。

    【讨论】:

    • 是的,它已安装。我在 weblogic 10.3.3.0 中部署。我将检查由 eclipse 创建的构建和展开的应用程序之间的差异
    猜你喜欢
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 2020-09-18
    • 2018-05-15
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多