Приложение Spring Boot не запускается с Testcontainers и FlywayJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Приложение Spring Boot не запускается с Testcontainers и Flyway

Сообщение Anonymous »

В настоящее время я разрабатываю приложение Spring Boot, в котором хочу использовать тестконтейнеры. Все работает нормально, но возникла проблема, препятствующая запуску приложения.
В сообщении об ошибке говорится:

Код: Выделить всё

Message: Connection to localhost:32868 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Я использую Flyway, и кажется, что основная проблема связана с инициализацией bean-компонента Flyway:

Код: Выделить всё

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Failed to initialize dependency 'flywayInitializer' of LoadTimeWeaverAware bean 'entityManagerFactory': Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Unable to obtain connection from database: Connection to localhost:32868 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Мои тесты выглядят так:

Код: Выделить всё

@Testcontainers
@SpringBootTest
@AutoConfigureMockMvc
public class OwnerRestControllerTest {

// Ideally, the container should be recognized as "in use"
@Container
@ServiceConnection
static PostgreSQLContainer postgresContainer =
new PostgreSQLContainer(DockerImageName.parse("postgres:17-alpine"));

@Autowired
private MockMvc mockMvc;

@Autowired
private OwnerRepository ownerRepository;

@Test
@Sql(scripts = "classpath:insert-owners.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)
@Sql(scripts = "classpath:delete-owners.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD)
public void getAll() throws Exception {
mockMvc.perform(get("/rest/owners")
.param("lastNameContains", "Doe"))
.andExpect(status()
.isOk())
.andExpect(jsonPath("$.content[*].lastName").value(everyItem(is("Doe"))))
.andExpect(jsonPath("$.content.length()").value(2));
}
}
Я нашел обходной путь, но он меня не устраивает. Для этого нужно просто подождать немного дольше:

Код: Выделить всё

@Testcontainers
@SpringBootTest
@AutoConfigureMockMvc
public class OwnerRestControllerTest {

@BeforeAll
static void beforeAll() throws InterruptedException {
Thread.sleep(5000);
}
}
Кто-нибудь сталкивался с подобной проблемой? Для тех, кому интересно, я создал репозиторий.
Вы можете запустить приложение из этой ветки: Репозиторий GitHub.
Есть ли другой подход? следует использовать для настройки среды с помощью Testcontainers и Flyway? Или это просто ошибка?

Подробнее здесь: https://stackoverflow.com/questions/791 ... and-flyway
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Приложение Spring Boot не запускается с Testcontainers и Flyway
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Spring Boot + Flyway + Testcontainers (oracle) не работает «CREATE USER» ORA-01031: недостаточно привилегий
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Запустите миграцию Flyway вручную, используя плагин gradle Flyway в Micronaut.
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Запустите миграцию Flyway вручную, используя плагин gradle Flyway в Micronaut.
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Запустите миграцию Flyway вручную, используя плагин gradle Flyway в Micronaut.
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»