Galera,
Estou com um problema ao persistir os meus objetos no banco.
Estouo usando GWT + Spring.
O atributo dao esta nulo.
dao.save(usuario);
O que voces acham que pode ser?
Valeu.
Abaixo os meu codigos:
Meu aplication-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<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"
xmlns:context="http://www.springframework.org/schema/context" xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<tx:annotation-driven transaction-manager="transactionManager" />
<context:annotation-config />
<context:component-scan base-package="br.com.caravaggio.server" />
<aop:aspectj-autoproxy />
<bean id="databaseProperties"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>
classpath:database.properties
</value>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="url" value="${url}" />
<property name="username" value="${user}" />
<property name="password" value="${password}" />
<property name="driverClassName" value="${driver}" />
<property name="maxActive" value="${pool.max_active}" />
<property name="maxIdle" value="${pool.max_idle}" />
<property name="maxWait" value="${pool.max_wait}" />
<property name="defaultAutoCommit" value="false" />
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
destroy-method="destroy">
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="br.com.caravaggio.shared.modelo" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">
false
</prop>
<prop key="hibernate.format_sql">
true
</prop>
<prop key="hibernate.dialect">
${hibernate.dialect}
</prop>
<prop key="hibernate.hbm2ddl.auto">
${hibernate.hbm2ddl}
</prop>
<prop key="hibernate.id.new_generator_mappings">
true
</prop>
</props>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
Minha classe do lado do servidor
@Service("service")
public class CaravaggioServiceImpl extends RemoteServiceServlet implements
CaravaggioService {
/**
*
*/
private static final long serialVersionUID = 1L;
@Autowired
private Dao dao;
@Transactional(readOnly = true)
@Override
public void delete(Usuario usuario) {
dao.delete(usuario);
}
@Transactional(readOnly = true)
@Override
public Usuario get(Long id) {
Usuario usuario = dao.get(id);
return usuario;
}
@Transactional(readOnly = true)
@Override
public List<Usuario> list() {
List<Usuario> usuarios = dao.list();
return usuarios;
}
@Transactional(readOnly = false)
@Override
public void save(Usuario usuario) {
dao.save(usuario);
}
}
Minha classe Dao
@Repository
public class Dao {
@Autowired
private HibernateTemplate hibernate;
public Usuario get(Long id) {
return hibernate.get(Usuario.class, id);
}
public void delete(Usuario entity) {
hibernate.delete(entity);
}
public void save(Object entity) {
hibernate.saveOrUpdate(entity);
}
@SuppressWarnings("unchecked")
public List<Usuario> list() {
String queryStr = "from " + Usuario.class.getSimpleName()
+ " fetch all properties";
Query query = getCurrentSession().createQuery(queryStr);
return query.list();
}
private Session getCurrentSession() {
return hibernate.getSessionFactory().getCurrentSession();
}
}