См. Прилагаемую системную диаграмму.
системная диаграмма здесь
ВЫПУСК: Когда я пытаюсь отправить сообщение на входной канал,Код пытается подключиться к БД и выдает исключение, что он не может подключиться.
Код внутри 5 -> Чтение из канала, применение бизнес-логики (пока пусто) и отправкаответ на другой канал.
@Bean
public IntegrationFlow sendToBusinessLogictoNotifyExternalSystem() {
return IntegrationFlows
.from("CommonChannelName")
.handle("Business Logic Class name") // Business Logic empty for now
.channel("QueuetoAnotherSystem")
.get();
}
Я написал JUnit для 5, как указано ниже,
@Autowired
PublishSubscribeChannel CommonChannelName;
@Autowired
MessageChannel QueuetoAnotherSystem;
@Test
public void sendToBusinessLogictoNotifyExternalSystem() {
Message<?> message = (Message<?>) MessageBuilder.withPayload("World")
.setHeader(MessageHeaders.REPLY_CHANNEL, QueuetoAnotherSystem).build();
this.CommonChannelName.send((org.springframework.messaging.Message<?>) message);
Message<?> receive = QueuetoAnotherSystem.receive(5000);
assertNotNull(receive);
assertEquals("World", receive.getPayload());
}
ВЫПУСК: Как вы можете видеть из диаграммы системы, мойКод также имеет соединение с БД в другом потоке.
Когда я пытаюсь отправить сообщение на канал производителя, код пытается соединиться с БД и выдает исключение, что он не может соединиться.
Я не хочу, чтобы это произошло, потому что JUnit никогда не должен быть связан с БД и должен запускаться где угодно и когда угодно.
How do I fix this exception?
ПРИМЕЧАНИЕ: Не уверен, имеет ли это значение, приложение представляет собой приложение Spring Boot.Я использовал Spring Integration внутри кода для чтения и записи из / в очереди.