Erro ao injetar o Bean

7 respostas
eliasfsjunior

Galera, estou começando no GUJ e em Spring + Hibernate e na verdade nem sei se esse é o fórum para postar essa duvida. :slight_smile:

Estou com um erro e não sei aonde preciso mexer.

O erro é esse: [color=red] Error creating bean with name ‘pessoaBean’ defined in file [C:\Users\elias\workspaces\curso\01-Criteria\bin\dao\impl\PessoaDAOImpl.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: ‘sessionFactory’ or ‘hibernateTemplate’ is required[/color]

Quando tento carregar o application context, acontece o erro.

ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:context="http://www.springframework.org/schema/context" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
                          http://www.springframework.org/schema/context 
                          http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<context:annotation-config/>
        <context:component-scan base-package="dao, dao.impl, modelo, view"/>
</beans>

hibernate.cfg.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
   <session-factory>
      <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
      <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/postgres</property>
      <property name="hibernate.connection.username">postgres</property>
      <property name="hibernate.connection.password">pass</property>
      <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
      <property name="show_sql">true</property>
      <property name="format_sql">true</property>
      <property name="hibernate.current_session_context_class">thread</property>
      <mapping class="modelo.Endereco"/>
      <mapping class="modelo.Pessoa"/>
      <mapping class="modelo.PessoaFisica"/>
   </session-factory>
</hibernate-configuration>

7 Respostas

drsmachado

O problema é que você está usando o sessionFactory ou o HibernateTemplate em PessoaDAOImpl e este não está mapeado em teu applicationContext.xml.

eliasfsjunior

Beleza, e como eu faco para mapear eles no Application Context?

drsmachado

O google é teu pastor e nada não saberás

lele_vader

Você vai precisar criar beans para mapear a SessionFactory e a Session.
Opcionalmente se for usar gerenciamento de transação pode usar um bean para o transaction manager, referenciando a session factory.

Depois qd estiver em casa eu dou uma olhada melhor.vlw.

drsmachado

lele_vader:
Você vai precisar criar beans para mapear a SessionFactory e a Session.
Opcionalmente se for usar gerenciamento de transação pode usar um bean para o transaction manager, referenciando a session factory.

Depois qd estiver em casa eu dou uma olhada melhor.vlw.


Se ele estiver usando hibernate ou algum framework ORM compatível, ele não precisa disto.
Basta criar um dataSource.xml e colocar o mesmo como bean do Spring Framework.
Tem uma série de tutoriais que ensinam isto perdidos pelo google, à espera de alguém que os procure e leia.

lele_vader

Taí algo que eu nunca usei.
Depois vou dar uma olhada nesse arquivo datasource.xml

drsmachado

Aqui você encontra algumas informações úteis.

Criado 31 de julho de 2012
Ultima resposta 31 de jul. de 2012
Respostas 7
Participantes 3