如何找到Spring beans.xml

时间:2013-06-20 16:19:18

标签: java spring maven dependency-injection ear

我有一个带有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?

或者它应该在其他地方,完全?

此致

1 个答案:

答案 0 :(得分:1)

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

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