Estou recebendo o DataSource não suportado ao usar o DataSouceBuilder
Eu sou novo no Spring-Batch (e no Spring em geral) e tenho acompanhado a documentação on-line para me ensinar o que preciso para executar esta tarefa. Estou tentando conectar-me a um banco de dados DB2.
Se eu declarar a conexão do DB2 com XML assim:
<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>
Em seguida, carregue-o no meu código da seguinte forma:
@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;
}
Funciona perfeitamente. No entanto, como eu gostaria de usar o DataSourceBuilder como os exemplos mostram, eu gostaria de chegar a:
@ConfigurationProperties(prefix="DEV.datasource")
public DataSource Wcs_DataSource(){
return DataSourceBuilder.create().build();
}
Mas, por algum motivo, isso não funciona. eu recebo
Causado por: java.lang.IllegalStateException: nenhum tipo de DataSource suportado encontrado
Eu também tentei:
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;
}
E eu recebo o mesmo erro. Se eu executá-lo no depurador, posso ver que o erro ocorre no .build ().
Tenho certeza de que estou perdendo algo fácil, mas não consigo descobrir.