No bean named 'transactionManager' is defined
Salut ,
J'ai rencontré ce erreur et je n'ai pas pu le résoudre :
factory.BeanCreationException: Error creating bean with name 'initDbService' caused by NoSuchBeanDefinitionException: No bean named 'transactionManager' is defined .
Mais j'ai bien definie dans le fichier ApplicationContext.xml.
Le fichier InitDbService
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
@Transactional
@Service
public class InitDbService {
@Autowired
private RoleRepository roleRepository ;
@Autowired
private UserRepository userRepository ;
@Autowired
private ItemRepository itemRepository ;
@Autowired
private BlogRepository blogRepository ;
@PostConstruct
public void init()
{
Role roleUser = new Role();
roleUser.setName("ROLE_USER");
roleRepository.save(roleUser);
Role roleAdmin = new Role();
roleAdmin.setName("ROLE_ADMIN");
roleRepository.save(roleAdmin);
User userAdmin = new User();
userAdmin.setName("admin");
List<Role> roles = new ArrayList<Role>();
roles.add(roleUser);
roles.add(roleAdmin);
userAdmin.setRoles(roles);
userRepository.save(userAdmin);
Blog blogJavaVids = new Blog();
blogJavaVids.setName("JavaVids");
blogJavaVids.setUrl("http://feeds.feedburner.com/javavids?format=xml");
blogJavaVids.setUser(userAdmin);
blogRepository.save(blogJavaVids);
Item item1 = new Item();
item1.setBlog(blogJavaVids);
item1.setTitle("first");
item1.setLink("http://www.javavids.com");
item1.setPublishedDate(new Date());
itemRepository.save(item1);
Item item2 = new Item();
item2.setBlog(blogJavaVids);
item2.setTitle("second");
item2.setLink("http://www.javavids.com");
item2.setPublishedDate(new Date());
itemRepository.save(item2);
}
} |
et le fichier applicationContext.xml ou j'ai defenie le bean transactionManger
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
<context:component-scan base-package="cz.jiripinkas.jba" >
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManger">
<property name="dataSource" ref="dataSource" />
</bean>
<jpa:repositories base-package="cz.jiripinkas.jba.repository" />
<jdbc:embedded-database type="HSQL" id="dataSource" />
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="emf">
<property name="packagesToScan" value="cz.jiripinkas.jba.entity" />
<property name="dataSource" ref="dataSource" />
<property name="jpaProperties">
<props>
<prop key="hibernate.show_sql"> true</prop>
<prop key="hibernate.hbm2ddl.auto"> create</prop>
</props>
</property>
<property name="persistenceProvider">
<bean class="org.hibernate.jpa.HibernatePersistenceProvider" />
</property>
</bean>
<jpa:repositories base-package="cz.jiripinkas.jba.repository" entity-manager-factory-ref="emf"
transaction-manager-ref="transactionManager" />
</beans> |
Merci.