Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Tentei persistir os dados de uma model que criei separada das entidades mais esta dando erro java.lang.NullPointerException

No projeto estou recebendo UsuarioEntity pela controller, envio para model Usuário, na model Usuario tenho uma variável global UsuarioDAO usuarioDAO com @Autowired e chamo o usuarioDAO.cadastroUsuario(UsuarioEntity) mais esta retornando esse erro:

Servlet.service() for servlet [dispatcher] in context with path [/cifras] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException at com.cifras.model.Usuario.cadastrarUsuario(Usuario.java:47) ...

e quando coloco a varaivel global na controller UsuarioDAO usuarioDAO com @Autowired e chamo o usuarioDAO.cadastroUsuario(UsuarioEntity), funciona normalmente

o que posso fazer para chamar a UsuarioDAO na model

5 respostas

Olá,

Seu model também é um componente gerenciado pelo Spring?

Té mais,

Então, adicionei o pacote model no @componentscan da AppWebConfiguration,

@EnableWebMvc @ComponentScan(basePackageClasses={HomeController.class, Usuario.class, UsuarioDAO.class}) public class AppWebConfiguration { ...

Tbm adicionei na model Usuario o @Component em cima do nome da classe

@Component public class Usuario {

@Autowired private UsuarioDAO usuarioDAO;

public Usuario(){

}

public void cadastrarUsuario(UsuarioTO usuarioTO){

System.out.println(usuarioTO.toString()); usuarioDAO.cadastrarUsuario(usuarioTO);

} ...

Olá,

Funcionou?

não, esta dando o mesmo erro

solução!

Problema resolvido, eu estava instanciando a model Usuário manualmente na Controller

public void cadastrar(UsuárioTO usuarioTO){ Usuário usuário = new Usuário(); usuário.cadastrarUsuario(usuarioTO); }

para funcionar, coloquei na Controler uma variável global da model Usuário instanciada pelo Spring

@Autowired private Usuário usuário;

public void cadastrar(UsuárioTO usuarioTO){ usuário.cadastrar(usuarioTO); }

Obrigado pela Ajuda, Abs