Я получаю DataSource Not Supported при использовании DataSouceBuilder
Я новичок в Spring-Batch (и Spring в целом) и слежу за онлайн документацией, чтобы научить себя, что мне нужно для выполнения этой задачи. Я пытаюсь подключиться к базе данных DB2.
Если я объявлю соединение DB2 с XML следующим образом:
<bean id="wcs_dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver" />
<property name="url" value="jdbc:db2://127.0.0.1/DEV" />
<property name="username" value="user" />
<property name="password" value="pass5" />
</bean>
Затем загрузите его в мой код следующим образом:
@Bean
public JdbcCursorItemReader<Product> databaseItemReader() {
ApplicationContext context =
new ClassPathXmlApplicationContext("context-datasource.xml");
DataSource dataSource = (DataSource) context.getBean("wcs_dataSource");
((ConfigurableApplicationContext)context).close();
JdbcCursorItemReader<Product> result = new JdbcCursorItemReader<Product>();
result.setDataSource(dataSource);
result.setSql(sqlString);
result.setRowMapper(new ProductRowMapper());
return result;
}
Работает отлично. Как бы я ни хотел использовать DataSourceBuilder, как показывают примеры, в конечном итоге я хотел бы получить:
@ConfigurationProperties(prefix="DEV.datasource")
public DataSource Wcs_DataSource(){
return DataSourceBuilder.create().build();
}
Но почему-то это не работает. я получил
Вызвано: java.lang.IllegalStateException: не поддерживается поддерживаемый тип источника данных
Я также попробовал:
public DriverManagerDataSource dataSource() {
DataSourceBuilder DSBuilder = DataSourceBuilder.create();
DSBuilder.url("jdbc:db2://127.0.0.1/DEV");
DSBuilder.username("user");
DSBuilder.password("password");
DSBuilder.driverClassName("com.ibm.db2.jcc.DB2Driver");
DriverManagerDataSource result = (DriverManagerDataSource) DSBuilder.build();
return result;
}
И я получаю ту же ошибку. Если я запускаю его в отладчике, я вижу, что ошибка происходит в .build ().
Я уверен, что упускаю что-то простое, но я не могу понять это.