Erro no login - Java Spring/MVC

5 respostas
jsphibernatespringjavamvc
E

Olá, pessoal!

Estou desenvolvendo uma aplicação web em java com Spring/MVC e estou tendo problemas na requisição de login.
Já vi inúmeros tutoriais e tópicos, mas ainda não consegui resolver o meu problema.
No código não apresenta nenhum erro. A tela de login abre, mas quando tento acessar meu index, aparece o erro 500.

========== ERRO QUE CAUSA QUANDO TENTO ACESSAR ============

GRAVE: Servlet.service() for servlet [muambyte] in context with path [/muambyte] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

java.lang.NullPointerException

at br.com.impacta.controller.AdminController.efetuaLogin(AdminController.java:37)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)

============= CONTROLLER ===============

@Controller
public class AdminController {

/@Autowired/
public FuncionariosDAO funcionariosDAO;

@RequestMapping("/login")

public String login() {

return login;

}
@RequestMapping("/efetuaLogin")

public String efetuaLogin(String login, String senha, HttpSession session) {

Funcionario funcionario = funcionariosDAO.existeUsuario(login, senha);

if(funcionario == null){

session.setAttribute(usuarioLogado, senha);

return index;

}

return redirect:login;

}

================== METODOS DAO =====================

public Funcionario pesquisar(String login){

conexao = ConnectionFactory.getconnection();

Funcionario funcionario = this.conexao.find(Funcionario.class,login);		

conexao.close();

return funcionario;	

}
public Funcionario existeUsuario(String login, String senha){

Funcionario funcionario = this.pesquisar(login);

if(funcionario != null && funcionario.getSenha().equals(senha)){

return funcionario;

}

else{

return null;

}

}

5 Respostas

C

Ola,
O problema esta na linha 37, o objeto esta null, provavelmente é o dao.

Ja que a injeção esta comentada

E

Campelo, boa tarde.

Obrigada pelo retorno. Eu comentei a injeção, pois essa anotação quebra toda a aplicação, nem a página de Login abre.
O estranho é que meu objeto não está vazio.

Teste do método pesquisar do DAO:
image

E minha tabela também tem dados e o login ta como primary key:
image

C

Da forma que esta fazendo o teste, realmente o DAO não sera null ja que esta dando um new.

Se a aplicacao esta se quebrando quando faz a injeção, entao o seu problema é na injeção.
Você teria que concertar isso.

Volte a anotacao Autowired suba o projeto e post a stack gerada.

E

Boa noite! Obrigada novamente pelo retorno.

Adicionei a anotação novamente e este é o erro que gera ao abrir a página de login.

GRAVE: StandardWrapper.Throwable

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name adminController: Unsatisfied dependency expressed through field funcionariosDAO; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type br.com.impacta.dao.FuncionariosDAO available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)

Imaginei que seria algo no context, mas como sou iniciante, não sei se é preciso configurar algo.

Obrigada pela ajuda!

E

Eu consegui resolver! Mais tarde posto aqui a solução e mudo o tópico para resolvido.

Obrigada pela ajuda e empenho!!!

Criado 21 de novembro de 2017
Ultima resposta 23 de nov. de 2017
Respostas 5
Participantes 2