Pois eh, ja tinha até colocado outro tópico sobre algumas dúvidas q tinha sobre Spring. Agora já estou com problemas. Como ja havia dito estou seguindo um livro para fazer o exemplo com Springs. E estou em uma parte onde ele, testa o código com o JUnit. Ai implementamos o teste do gravar. So que esta dando um error. Ja procurei em tudo qnt é lugar, ja refiz tudo do livro e não encontro aonde esta dando o erro.
O erro é este aki:
Testcase: gravar(facade.UsuarioFacadeTest): Caused an ERROR
Error creating bean with name ‘org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0’ defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.IllegalStateException: No persistence exception translators found in bean factory. Cannot perform exception translation.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0’ defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.IllegalStateException: No persistence exception translators found in bean factory. Cannot perform exception translation.
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.beans.factory.config. PropertyPlaceholderConfigurer] for bean with name ‘propertyConfigurer’ defined in class path resource [applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.beans.factory.config. PropertyPlaceholderConfigurer
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.jpa. LocalContainerEntityManagerFactoryBean] for bean with name ‘entityManagerFactory’ defined in class path resource [applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.jpa. LocalContainerEntityManagerFactoryBean
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:470)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:404)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:375)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:263)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:170)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:260)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:184)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:163)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:881)
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:597)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:366)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:83)
E código de implementação do JUnit é este:
/**
* Test of gravar method, of class UsuarioFacade.
*/
@Test
public void gravar() {
ApplicationContext context = new
ClassPathXmlApplicationContext("applicationContext.xml");
Usuario usuarioTeste = new Usuario();
usuarioTeste.setLogin("guest");
usuarioTeste.setNome("guest");
usuarioTeste.setSenha("guest");
System.out.println("gravar usuário");
UsuarioFacade instance = (UsuarioFacade) context.getBean("usuarioFacade");
Usuario result = instance.gravar(usuarioTeste);
try{
assertNotNull(result.getIdUsuario());
}catch (AssertionError e){
fail("Falhou a gravação do usuário.");
}
}
/**
* Test of excluir method, of class UsuarioFacade.
*/
Vou colocar aki a resolução do erro. Apesar de ter batido muita cabeça, enfim descobri o problema. Vou colocar aki, pq talvez no futuro alguém tenha o mesmo problema que eu tive, dai ja tem a solução aki.
O problema esta entre o teclado e a cadeira … logicamente o problema era eu … ahahahha …
@author fbrisotto
*/
public class UsuarioFacadeTest {
public UsuarioFacadeTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
Test of gravar method, of class UsuarioFacade.
*/ @Test
public void gravar() {
System.out.println(“gravar”);
ApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”);
Usuario usuarioTeste = new Usuario();
usuarioTeste.setLogin(“teste”);
usuarioTeste.setNome(“teste”);
usuarioTeste.setSenha(“teste”);
try{
assertNotNull(result.getIdUsuario());
}catch (AssertionError e){
fail(“Falhou a gravação de usuário”);
}
}
/**
Test of excluir method, of class UsuarioFacade.
*/ @Test
public void excluir() {
System.out.println(“excluir”);
Usuario usuario = null;
UsuarioFacade instance = new UsuarioFacade();
instance.excluir(usuario);
// TODO review the generated test code and remove the default call to fail.
fail(“The test case is a prototype.”);
}
/**
Test of carregar method, of class UsuarioFacade.
*/ @Test
public void carregar() {
System.out.println(“carregar”);
Integer id = null;
UsuarioFacade instance = new UsuarioFacade();
Usuario expResult = null;
Usuario result = instance.carregar(id);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail(“The test case is a prototype.”);
}
/**
Test of obterTodos method, of class UsuarioFacade.
*/ @Test
public void obterTodos() {
System.out.println(“obterTodos”);
UsuarioFacade instance = new UsuarioFacade();
List expResult = null;
List result = instance.obterTodos();
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail(“The test case is a prototype.”);
}
/**
Test of obterPorNome method, of class UsuarioFacade.
*/ @Test
public void obterPorNome() {
System.out.println(“obterPorNome”);
String nome = “”;
UsuarioFacade instance = new UsuarioFacade();
List expResult = null;
List result = instance.obterPorNome(nome);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail(“The test case is a prototype.”);
}
/**
Test of obterPorLogin method, of class UsuarioFacade.
*/ @Test
public void obterPorLogin() {
System.out.println(“obterPorLogin”);
String login = “”;
UsuarioFacade instance = new UsuarioFacade();
List expResult = null;
List result = instance.obterPorLogin(login);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail(“The test case is a prototype.”);
}
/**
Test of obterPorLoginSenha method, of class UsuarioFacade.
*/ @Test
public void obterPorLoginSenha() {
System.out.println(“obterPorLoginSenha”);
String login = “”;
String senha = “”;
UsuarioFacade instance = new UsuarioFacade();
List expResult = null;
List result = instance.obterPorLoginSenha(login, senha);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail(“The test case is a prototype.”);
}
/**
Test of getUsuarioDao method, of class UsuarioFacade.
*/ @Test
public void getUsuarioDao() {
System.out.println(“getUsuarioDao”);
UsuarioFacade instance = new UsuarioFacade();
UsuarioDao expResult = null;
UsuarioDao result = instance.getUsuarioDao();
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail(“The test case is a prototype.”);
}
/**
Test of setUsuarioDao method, of class UsuarioFacade.
*/ @Test
public void setUsuarioDao() {
System.out.println(“setUsuarioDao”);
UsuarioDao usuarioDao = null;
UsuarioFacade instance = new UsuarioFacade();
instance.setUsuarioDao(usuarioDao);
// TODO review the generated test code and remove the default call to fail.
fail(“The test case is a prototype.”);
}
Estou lendo o mesmo livro (Java na Web com JSF, Spring, Hibernate e Netbeans 6) e tive o mesmo problema : )
Acredito que seja algum caractere perdido no XML, ou alterações na versão do Spring.
Notei as seguintes mensagens:
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.mchange.v2.c3p0.ComboPooledDataSource] for bean with name ‘dataSource’ defined in class path resource [applicationContext.xml];
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.jpa.vendor.LocalContainerEntityManagerFactoryBean] for bean with name ‘entityManagerFactory’ defined in class path resource [applicationContext.xml];