Я пытаюсь перейти с JPA на JTA и использовать менеджер транзакций bitronix. Я получаю сообщение об ошибке ниже при попытке запустить модульные тесты. Согласно документации bitronix, это нормально, т.к. моя весенняя конфигурация контекста пытается загрузить ресурсы дважды (один раз в базовом классе, а затем в тестовом классе, см. Код ниже), я пробовал то же самое с atomikos, и я получил аналогичный результат ,
вызвано:
java.lang.IllegalArgumentException:
ресурс с уникальным именем 'xyzDb'
уже зарегистрирован
Мой базовый класс
@ContextConfiguration(locations = {"classpath:com/xyz/baseContext.xml"})
@Transactional
public abstract class AbstractTestSupport extends Assert implements ApplicationContextAware
{
В некоторых модульных тестах мне нужно расширить поддержку тестирования и добавить файл конфигурации контекста, как показано ниже. поэтому он загружает контекст один раз для базового класса, а другой раз для дочернего класса и завершается ошибкой
Детский класс
@ContextConfiguration(locations = {"classpath:com/xyz/testContext.xml"})
public class UnitTest extends AbstractTestSupport
{
После теста я закрываю контекст, поэтому следующий тест работает нормально, если он не расширяет базовый класс другим конфигурационным файлом контекста.
@AfterClass
public static void onTearDownAfterClass() throws Exception
{
applicationContext.shutdownApplicationContext();
assertFalse("Spring application context is still active after shutdown. ", applicationContext.isActive());
}
Я хочу сохранить файлы конфигурации контекста в дочерних классах и сделать так, чтобы все идеи были высоко оценены ...