WebSphere 8.5: модульное тестирование и встраиваемый контейнер
Я пытаюсь запустить следующий модульный тест в проекте Maven с использованием встраиваемого контейнера WebSphere 8.5:
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: Встраиваемый контейнер корпоративного компонента не может запускать несколько модулей с одинаковым именем файла: project1\target\classes и project2\target\classes
Кто-нибудь знает, как обойти эту проблему? Я искал, но не мог найти ничего полезного.
Изменить: я нашел документацию для исключения CNTR9403E здесь:
CNTR9403E: Встраиваемый контейнер EJB не может запустить несколько модулей с одинаковыми именами файлов: {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 ответ
Да, classes
имя каталога вызывает конфликт. Обходного пути для использования этих имен каталогов не существует, поэтому я бы порекомендовал протестировать сгенерированные .jar
вместо этого, хотя у меня нет опыта работы с Maven, поэтому я не знаю, насколько это возможно. Это несколько неудовлетворительно, поэтому вы можете открыть WebSphere RFE, чтобы разрешить указывать свойства для устранения неоднозначности.