Pessoal tenho aqui no trabalho um pc com o XP, e estou desenvolvendo um site simples.
Em casa trabalho com o W7 e estou fazendo o mesmo site.
Só que aqui no trabalho não consigo pegar os dados do HTML e passar para comparar com o banco dar o seguinte erro -> java.lang.NullPointerException.
Detalhe estou usando o mesmo código que uso em caso e funciona normal em casa, e se faço uma classe Main para saber se estar conectando e percorrendo o BD da certo tbm, agora se pego os dados pelo formulario HTML não funciona… Estranho
Posta o HTML e o controller.
segue o HTML
[code]
<div id="site">
<div id="login">
<form action="verificaUsuariosBD" method="post">
<div id="nome"> <label>Usuário :</label> </div>
<div id="input_nome"> <input type="text" name="user_" size="20px"></div> <br>
<div id="senha"><label>Senha : </label> </div>
<div id="input_senha"><input type="password" name="password_"> </div> <br>
<div id="btn_logar"> <input type="submit" name="logar_" value="Entrar"> </div>
<div id="btn_limpar"><input type="reset" name="clear_" value="Limpar"> </div>
<div id="link_esqueceuSenha"><a href="#">Esqueceu sua senha?</a> </div>
<div id="link_cadastrar"><a href="cadastro.jsp">Se cadastrar!</a> </div>
</form>
</div>
</div>
[/code]
SEGUE A SERVLET PARA VERIFICAR O USUARIO
[code]protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//pegando os dados do formulario HTML
cadastro cd = new cadastro();
cd.setNome(request.getParameter("usuario"));
cd.setSenha(request.getParameter("senha"));
ConexaoBD carrega = new ConexaoBD();
Connection con = null;
ResultSet rs = null;
PreparedStatement pps = null;
try{
con = carrega.fazConexao();
pps = con.prepareStatement(" select * from login where log_usuario =? and log_senha =? ");
pps.setString(1,cd.getNome());
pps.setString(2,cd.getSenha());
rs = pps.executeQuery();
while(rs.next()){
}
rs.close();
}catch(Exception e){
e.printStackTrace();
System.out.println("erro ----- "+e);
}
}
}[/code]
Nesse trecho:
cd.setNome(request.getParameter("usuario"));
cd.setSenha(request.getParameter("senha"))
Não deveria ser assim:
cd.setNome(request.getParameter("user_"));
cd.setSenha(request.getParameter("password_"))
??
já estar certo com esses campos do HTML, eu que enviei errado, mas mesmo assim não consigo acessar o banco aqui, lembrando q em casa com o mesmo codigo acesso a aplicação, faço cadastro, mas aqui não consigo, e pela classe main eu consigo.
Acho que deve ser com o HTML em si, configurei até as variaveis de ambiente aqui tbm, mas em vao
segue o código da classe main. funciona normal
[code]package Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;
public class testaConexaoMain {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
ConexaoBD teste = new ConexaoBD();
teste.fazConexao();
ConexaoBD carrega = new ConexaoBD();
Connection con = null;
ResultSet rs = null;
PreparedStatement pps = null;
try{
con = carrega.fazConexao();
pps = con.prepareStatement(" select * from login where log_usuario =? and log_senha =? ");
//pegando os dados pelo teclado
System.out.println("Informe o usuario");
String nome = ler.nextLine();
pps.setString(1,nome);
System.out.println("Informe a senha");
String senha = ler.nextLine();
pps.setString(2,senha);
rs = pps.executeQuery();
if(rs.next()){
System.out.println("Bem vindo "+nome);
}else{
System.out.println("Dados não consta no banco");
}
/*
while(rs.next()){
System.out.println(nome);
}
*/
ler.close();
rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
}[/code]
[code]conexao com o BD
package Dao;
import java.sql.Connection;
import java.sql.DriverManager;
public class ConexaoBD {
private java.sql.Connection conexao;
public Connection fazConexao(){
try{
Class.forName("org.postgresql.Driver");
conexao = DriverManager.getConnection("jdbc:postgresql://localhost:5432/site1","postgres","administrador");
}catch(Exception e){
e.printStackTrace();
}
return conexao;
}
}[/code]
Onde lança o NullPointer?
da todos esses erro ai
java.lang.ClassNotFoundException: org.postgresql.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Dao.ConexaoBD.fazConexao(ConexaoBD.java:13)
at Servlet.autenticaUsuario.doPost(autenticaUsuario.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at Servlet.autenticaUsuario.doPost(autenticaUsuario.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
erro ----- java.lang.NullPointerException
Tá dando erro na criação da conexão,
Nesse trecho:
java.lang.ClassNotFoundException: org.postgresql.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Dao.ConexaoBD.fazConexao(ConexaoBD.java:13)
O driver tá na aplicação?
Será que não tá referenciado para outro lugar?
ta referenciado certo. agora coloquei em quase todo lugar os drive de conexão. Não sei o que pode estar dando errado,
Estranho, pelo erro, é isso.
Se estiver utilizando o netbeans, em propriedades do projeto, vai na opção para adicionar o jar no item biblioteca.
No eclipse, você pode incluir no library ou no java build path (em propriedades do projeto).
Depois, da um clean, para o servidor, inicia de novo e dá uma testada.
eu uso o Eclipse. ja fiz isso. add os jar externos no Build Path…
o mais estranho e q uso o mesmo codigo em casa e da certo.
já tentei de tudo, não sei mais o q possa ser.
Não sei se foi as classes de conexão que coloquei em tudo que é lugar rsrsrsr, ou se eu não estava chamando a classe para conexão do BD antes de pegar os campos do HTML logo ao entra na servlet…
Agora funcionou. vlw fer.ferreira6 pela grande ajuda que vc me deu…
agora só falta eu conseguir fazer a pagina de erro…
Beleza, que bom que funciono.
Só coloca o [RESOLVIDO] no tópico =D
Valeu.