3

WebSphere 8.5埋め込み可能コンテナーを使用して、Mavenプロジェクトで次の単体テストを実行しようとしています。

import javax.ejb.embeddable.EJBContainer;

...

private EJBContainer ec;

@Before
public void setUp() {
    final Map<String, Object> properties = new HashMap<String, Object>();

    properties.put(EJBContainer.PROVIDER, "com.ibm.websphere.ejbcontainer.EmbeddableContainerProvider");

    ec = EJBContainer.createEJBContainer(properties);
}

@Test
public void test1(){
...
}

しかし、セットアップメソッドで次の例外が発生します。

CNTR9403E:組み込み可能エンタープライズBeanコンテナーは、同じファイル名で複数のモジュールを開始できません:project1 \ target\classesおよびproject2\target \ classes

誰かがこの問題を回避する方法を知っていますか?検索しましたが、役に立つものが見つかりませんでした。

編集: 例外CNTR9403Eのドキュメントをここで見つけました:

http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/index.jsp?topic=%2Fcom.ibm.websphere.messages.doc%2Fcom.ibm.ejs.container.container.html

CNTR9403E:組み込み可能エンタープライズBeanコンテナーは、同じファイル名:{0}および{1}で複数のモジュールを開始できません。

Explanation   User code has directed the embeddable container to start multiple modules with the same file name.
Action    Specify a list of modules that does not have duplicate file names, or rename one of the modules with a unique file name.

しかし、どうすればこれを修正できるかわかりません。パスの最後にある2つの「クラス」ディレクトリについて不平を言っていますか?Mavenマルチモジュールプロジェクトでこれを解決するにはどうすればよいですか?それとも、WebSphere 8.5のバグですか?

4

1 に答える 1

1

はい、classesディレクトリ名が競合を引き起こしています。これらのディレクトリ名を使用するための回避策はないため、.jar代わりに生成されたものをテストすることをお勧めしますが、Maven の専門知識がないため、それがどれほど実現可能かはわかりません。これはやや物足りないので、WebSphere RFEを開いて、プロパティーを指定して曖昧さをなくすことができます。

于 2013-01-29T16:12:35.373 に答える