WebSphere 8.5:单元测试&可嵌入容器

时间:2013-01-28 17:57:20

标签: java maven ejb websphere-8 embedded-container

我正在尝试使用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和   项目2 \目标\类

有人知道如何解决这个问题吗?我搜索但找不到任何有用的东西。

修改 我在这里找到了例外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中的错误吗?

1 个答案:

答案 0 :(得分:1)

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