Я бы хотел определить <int-jdbc:outbound-gateway/>
с query
и без update
для извлечения данных из базы данных.Затем я хотел бы использовать int-jdbc:outbound-gateway
в качестве реализации Service.findSomeData()
метода интерфейса.Данные, полученные из реализации интерфейса, используются в классе CheckService
моего специального преобразователя.См. Конфигурацию ниже:
<int:service-activator method=“performCheck”>
<bean class=“com.example.service.CheckService”
c:service-ref=“service”
</int:service-activator>
<int:gateway id=“service” service-interface=“com.example.service.Service”>
<int:method name=“findSomeData” request-channel=“jdbcChan” reply-channel=“jdbcChanReply”/>
</int:gateway>
<int-jdbc:outbound-gateway request-channel=“jdbcChan”
data-source=“pooledDs” row-mapper=“dataRowMapper” reply-channel=“jdbcChanReply”>
<int-jdbc:query>
select some, data from some_table
</int-jdbc:query>
Проблема в том, что я получаю исключение ReplyRequiredException
, когда перемещаю свою полезную нагрузку в jdbcChan
:
org.springframework.integration.handler.ReplyRequiredException: Нет ответа от обработчика 'org.springframework.integration.jdbc.JdbcOutboundGateway # 0', а его свойство 'requireReply' имеет значение true.
Я решилчтобы обратить больше внимания на пример , расположенный весной в репозитории spring-интеграция-samples на GitHub, но, похоже, он также не работает должным образом.Я получаю точно такое же исключение в примере проекта, пытающегося найти пользователя по имени foo
.Вы можете легко воспроизвести исключение, используя basic jdbc example , расположенный на GitHub, и следующий метод тестирования:
@Test
public void findPerson() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"/META-INF/spring/integration/spring-integration-context.xml");
PersonService service = context.getBean(PersonService.class);
final List<Person> foo = service.findPersonByName("foo");
assertThat(foo, is(not(empty())));
}
Я делаю это неправильно или в последней версии Spring Integration JDBC есть ошибка?(для меня похоже даже пример сломан)