【问题标题】:How to find Spring beans.xml如何找到 Spring beans.xml
【发布时间】:2013-06-20 16:19:18
【问题描述】:

我有一个带有 JAR 和 WAR 的 EAR,以及一个带有我的 Spring 定义的 beans.xml。我正在使用 Maven 来构建这个项目。 JAR 中的代码正在尝试查找 beans.xml,但没有找到。

我想要 beans.xml 吗:

EAR 的 META-INF/beans.xml?

JAR 的 META-INF/beans.xml?

我尝试了以下方法:

失败 1:JAR 的 META-INF/beans.xml

 String CONFIG_FILE_NAME = "META-INF/beans.xml";

 ApplicationContext context = new FileSystemXmlApplicationContext(CONFIG_FILE_NAME);
 BeanFactory factory = context;

这给出了:

BeansDeployer 部署 org.apache.webbeans.exception.WebBeansException:无法读取给定输入流的根元素。 ... 原因:java.net.ConnectException:连接超时:连接

失败 2:EAR 的 META-INF/beans.xml

 String CONFIG_FILE_NAME = "classpath*:/META-INF/*beans.xml";

 ApplicationContext context = new ClassPathXmlApplicationContext(CONFIG_FILE_NAME);
 BeanFactory factory = context;

这会产生 FileNotFoundException,因为 maven-ear-plugin 仅复制 application.xml,但在对应用程序进行 EAR 处理时不包括 beans.xml。如果这是正确的方法,有没有办法让 Maven 在构建时包含 beans.xml?

还是应该完全在别处?

问候

【问题讨论】:

    标签: java spring maven dependency-injection ear


    【解决方案1】:

    根据this answer,“一般来说,你不应该自己在META-INF中放入任何东西。”你为什么假设它应该在 META-INF 中?

    但是,如果您想将其复制到您耳朵的 META-INF 文件夹中,请将其放在您的 ejb/src/main/resources/META-INF 目录下。您可能必须手动创建其中的一些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多