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!