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(){
...
}

但是我在 setup 方法中遇到了以下异常:

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.

但我不知道如何解决这个问题。它是否在抱怨路径末尾的两个“类”目录?如何在 Maven 多模块项目中解决这个问题?或者它是 WebSphere 8.5 中的一个错误?

4

1 回答 1

1

是的,classes目录名称导致冲突。没有使用这些目录名称的解决方法,所以我建议.jar改为测试生成的,虽然我对 Maven 没有专业知识,所以我不知道这有多可行。这有点令人不满意,因此您可以打开WebSphere RFE以允许指定属性以消除歧义。

于 2013-01-29T16:12:35.373 回答