Исключение "java.lang.IllegalStateException: обнаружена существующая транзакция в JobRepository." после обновления весенней партии с версии 2.1.1 до 4.1.1 - PullRequest
0 голосов
/ 23 января 2019

У меня есть тестовый пример Junit, который запускает пакетное задание.Раньше это работало, когда у меня весенняя пакетная версия 2.1.2.Но как только я обновился до версии 4.1.1, я получаю исключение

java.lang.IllegalStateException: Existing transaction detected in JobRepository. Please fix this and try again (e.g. remove @Transactional annotations from client).

Я попытался удалить @Transactional из тестового класса.Но все равно получаю исключение. Думаю, ошибка связана с двумя транзакциями.Но все же удаление одного не исправило ошибку.

Ниже аннотации, используемые в тестовом классе, и у него есть методы теста, которые вызывают метод, выполняющий пакетное задание.Я использовал Transactional в тестовом классе и тестовый метод, запущенный с помощью SpringJUnit4ClassRunner runner.Я тоже пробовал с SpringRunner.

@RunWith(SpringJUnit4ClassRunner.class) @DirtiesContext
@Transactional

Этот метод будет вызываться из тестового метода.Метод запустил пакетное задание.

@Transactional(propagation = Propagation.NOT_SUPPORTED)
public Long startExportJob(){

Моя весенняя версия ядра - 4.3.18.Нужно ли обновлять до 5?Помоги мне в решении этого.Заранее спасибо.

1 Ответ

0 голосов
/ 23 января 2019

Моя основная версия пружины - 4.3.18.Нужно ли обновлять его до 5?

Да, для Spring Batch v4 требуется Spring Framework v5.Пожалуйста, ознакомьтесь с разделом Что нового версии 4.

Много изменений было сделано между v2.1 и v4.1.Я рекомендую постепенные обновления (по крайней мере, одну основную версию за раз), в противном случае вам нужно проверить журналы изменений и посмотреть, что может быть связано с вашим тестом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...