Spring: Erro de java.lang.NullPointerException

0 respostas
jmedeiros

Galera,

Estou construindo uma aplicação com Spring e JSF (ver: http://www.guj.com.br/posts/list/29930.java ) Encontrei algumas dificuldades mas consegui iniciar a aplicação.

O problema agora é que ao tentar inserir os dados vindos de uma página aparece uma mensagem de NullPointerException

java.lang.NullPointerException
        at src.UserForm.login(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Meu applicationContext-form.xml

<beans>

<bean id="user" class="src.UserForm" singleton="false">
		<property name="manager">
			<ref bean="userManager" />
		</property>
		<property name="user">
			<ref bean="userPojo" />
		</property>
</bean>
	
</beans>

Minha classe UserForm.java

import java.util.logging.Level;
import java.util.logging.Logger;

public class UserForm {

	private String nome;
	private String telefone;
	private Logger logger = Logger.getLogger("com.corejsf");
	private UserManager manager;
	private User user;
	
	
	public void setManager(UserManager manager) {
		this.manager = manager;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
	
	public String login(){
		try{
		user.setNome(this.nome);
		user.setTelefone(this.telefone);
		
		manager.cadastrarUsuario(user);
	
		return "sucesso";
		}catch(Exception e){
		logger.log(Level.SEVERE, "loginAction", e);
		e.printStackTrace();
		return "erro";
		}
	}
	
	
}

Notei que no try o erro inicia no user.setNome(this.nome).

Se eu fizer um new User( ) e um new UserManager( ). Eu consigo inserir o nome e telefone mais na inserção do banco aparece outro erro de NullPointerException, agora na classe que extende meu HibernateDaoSupport.

classe UserDaoHibernate.java

import java.util.Collection;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class UserDaoHibernate extends HibernateDaoSupport 
implements UserDao{



	public void inseri(User user) {
		 getHibernateTemplate().saveOrUpdate(user);
		 
		 if (logger.isDebugEnabled()) {
	            logger.debug("userId set to: " + user.getId());
	        }
	}

	public Collection listaUsuarios() {
		  return getHibernateTemplate().find("from User");
	}

}

Mas de qualquer forma eu acho que instanciar estas classes era pra ficar a cargo do spring.

Qualquer ajuda agradeço!

Criado 29 de março de 2006
Respostas 0
Participantes 1