0

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 deploy 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;

アプリケーションを EAR するときに、maven-ear-plugin は application.xml のみをコピーし、beans.xml を含めないため、これにより FileNotFoundException が発生します。これが正しい方法である場合、ビルド時に Maven に beans.xml を含める方法はありますか?

それとも、完全に別の場所に配置する必要がありますか?

よろしく

4

1 に答える 1

1

この回答によると、「一般的に言えば、自分で META-INF に何も入れるべきではありません。」META-INF内にある必要があると想定するのはなぜですか?

ただし、耳の META-INF フォルダーにコピーする場合は、ejb/src/main/resources/META-INFディレクトリの下に置きます。それらのいくつかを手動で作成する必要がある場合があります。

于 2013-06-20T17:11:13.043 に答える