Spring: Problema durante injeção de TaskExecutor

1 resposta
calel
Tenho uma classe que utiliza injeção por propriedade e que funciona normalmente. Mas após tentar incluir uma referencia a TaskExecutor recebo o seguinte erro:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.springframework.core.task.TaskExecutor] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)
	... 43 more
package com.projeto.business.campanha.impl;
// ... imports ...
@Service
public class CampanhaFacadeImpl implements CampanhaFacade {
	@Autowired
	private CampanhaDAO campanhaDAO;
	@Autowired
	private TaskExecutor taskExecutor;
Para criar a configuração para injeção do TaskExecutor segui a doc de referencia do Spring link
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"	
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
           
    <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
  		<property name="corePoolSize" value="5" />
  		<property name="maxPoolSize" value="10" />
  		<property name="queueCapacity" value="25" />
	</bean>

	<context:component-scan base-package="com.projeto" />

.... aqui ficam as configurações de transação com o banco e tals
</beans>
Não entendi porque o spring não está encontrando o bean taskExecutor no xml, tentei trocar o tipo para ThreadPoolTaskExecutor na classe mas o erro que ocorre é o mesmo =/

1 Resposta

calel

Estava fazendo uns testes aqui e criei uma classe como abaixo, e desse jeito o TaskExecutor foi injetado…
Retirei também a configuração do bean durante o teste.
Mas tenho certeza que esse não é o jeito certo de fazer, alguém tem alguma idéia ?

@Service
public class ThreadPoolTaskExecutor extends
		org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor implements TaskExecutor {
}
Criado 7 de fevereiro de 2012
Ultima resposta 7 de fev. de 2012
Respostas 1
Participantes 1