我有一个带有 JAR 和 WAR 的 EAR,以及一个带有我的 Spring 定义的 beans.xml。我正在使用 Maven 来构建这个项目。JAR 中的代码试图找到 beans.xml,但没有找到。
我想要 beans.xml 在:
EAR 的 META-INF/beans.xml?
还是
JAR 的 META-INF/beans.xml?
我尝试了以下事情:
失败一: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?
还是应该完全在其他地方?
问候