2013-06-20 62 views
0

我有一個帶JAR和WAR的EAR,以及一個帶有我的Spring定義的beans.xml。我使用Maven來構建這個項目。 JAR中的代碼試圖找到beans.xml,但它沒有找到它。如何查找Spring 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

this answer, 「一般來說,你不應該將任何東西放入META-INF自己。」你爲什麼假設它應該在META-INF中?

但是,如果您想將它複製到耳朵的META-INF文件夾中,請將其放在ejb/src/main/resources/META-INF目錄下。您可能必須手動創建其中一些。

相關問題