Problemas com Spring

7 respostas
M

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.
     */

Por favor alguém me de uma luz por favor.

7 Respostas

T

tá, mas e o seu application context.xml como está?

M

Ae esta o applicationContext

<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:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> 
           
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:/jdbc.properties"/>
    </bean>
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="${jdbc.driverClassName}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="showSql" value="true"/>
                <property name="genereteDd1" value="false"/>
                <property name="databasePlataform" value="org.hibernate.dialect.MySQL5Dialect"/>
            </bean>
        </property>
    </bean>
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean>
    <tx:annotation-driven/>
    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
    
    <bean id="usuario" class="dominio.Usuario" scope="session" />
    <bean id="usuarioDAO" class="dao.UsuarioDAO" />
    <bean id="usuarioFacade" class="facade.UsuarioFacade">
        <property name="usuarioDAO" ref="usuarioDAO"/>
    </bean>
    
    <bean id="contato" class="dominio.Contato" scope="session" />
    <bean id="contatoDAO" class="dao.ContatoDAO" />
    <bean id="contatoFacade" class="facade.ContatoFacade">
        <property name="contatoDAO" ref="contatoDAO"/>
    </bean>
    
    <bean id="endereco" class="dominio.Endereco" scope="session" />
    <bean id="enderecoDAO" class="dao.EnderecoDAO" />
    <bean id="enderecoFacade" class="facade.EnderecoFacade">
        <property name="enderecoDAO" ref="enderecoDAO"/>
    </bean>
    
    <bean id="meioContato" class="dominio.MeioContato" scope="session" />
    <bean id="meioContatoDAO" class="dao.MeioContatoDAO" />
    <bean id="meioContatoFacade" class="facade.MeioContatoFacade">
        <property name="meioContatoDAO" ref="meioContatoDAO"/>
    </bean>
</beans>
M

up

M

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 …

Escrevi: genereteDd1
Certo: generateDdl

Escrevi: databasePlataform
Certo: databasePlatform

devido a letra, devo ter confundido, enfim … resolvido

F

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package facade;

import dao.UsuarioDao;

import dominio.Usuario;

import java.util.List;

import org.junit.After;

import org.junit.AfterClass;

import org.junit.Before;

import org.junit.BeforeClass;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import static org.junit.Assert.*;

/**
*

  • @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.
      
      */
      
      <a class="mention" href="/u/test">@Test</a>
      
      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”);
      

      System.out.println(“Gravando 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 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.”);
      }

}

M

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];

Se alguém tiver alguma dica, agradeço.

S

Pessoal.
Eu refiz 3 vezes o exemplo do livro acima citado…
mas vou abrir outro tópico:

Criado 14 de março de 2008
Ultima resposta 29 de set. de 2011
Respostas 7
Participantes 5