Pessoal, sei que é um erro de objeto que esta como NULL, porem não estou conseguindo visualizar o erro de jeito nenhum. As informações chegam até Servlet tranquilo, em vez de usar o servlet eu fiz uma classe com o main() e fiz a mesma estrutura do mesmo e inseri no banco. Mas quando eu utilizo do;
Browser > Servlet > acontece o seguinte exception:
java.lang.NullPointerException
br.com.teste.dao.PaisDAO.inserir(PaisDAO.java:22)
br.com.teste.servlet.PaisServlet.service(PaisServlet.java:34)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
Alguem poderia ajudar?
Grato,
Segue as classes e no final o Stack.
Bean:
package br.com.teste.bean;
public class Pais {
private Long id;
private int codigo;
private String descricao;
/**
* Construtor da classe <code>Pais</code> responsavel por receber os parametros
* para configuracao das variaveis da classe.
*
* @param id
* @param codigo
* @param descricao
*/
public Pais() {
}
/**
* Metodo responsavel por armazenar informacao do ID registrado
* no banco de dados da classe <code>Pais</code>.
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* Metodo responsavel por retornar o ID registrado no banco de dados da classe <code>Pais</code>.
*
* @return id
*/
public Long getId() {
return id;
}
/**
* Metodo responsavel por armazenar informacao do codigo do <code>Pais</code>
* Este codigo e unico.
* @param codigo
*/
public void setCodigo(int codigo) {
this.codigo = codigo;
}
/**
* Metodo responsavel por retornar o codigo do <code>Pais</code>
* Este codigo e unico.
* @return codigo
*
*/
public int getCodigo() {
return codigo;
}
/**
* Metodo responsavel por armazenar informacao da descricao do <code>Pais</code>
* @param descricao
*/
public void setDescricao(String descricao) {
this.descricao = descricao;
}
/**
* Metodo responsavel por retornar a descricao do <code>Pais</code>
* @return descricao
*/
public String getDescricao() {
return descricao;
}
}
Conecta:
package br.com.teste.factory;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class Conecta {
private String url;
private String banco;
private String usuario;
private String senha;
Connection con = null;
/**
* Metodo responsavel por retornar a conexao do banco de dados.
*
* @return con
*/
public Connection getConexao() {
try {
con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/dbteste","postgres","123456");
} catch (SQLException e) {
System.out.println("Banco não conectado");
e.printStackTrace();
}
return con;
}
}
}
DAO
package br.com.teste.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.teste.bean.Pais;
import br.com.teste.factory.Conecta;
public class PaisDAO {
public void inserir(Pais p) {
String sql = "INSERT INTO tb_pais (cd_pais,ds_pais) VALUES (?,?)";
Conecta conx = new Conecta();
Connection con = conx.getConexao();
try {
PreparedStatement stm = con.prepareStatement(sql);
stm.setInt(1, p.getCodigo());
stm.setString(2, p.getDescricao());
stm.execute();
stm.close();
con.close();
} catch (SQLException e) {
System.out.println("Não inseriu");
}
}
}
Servlet:
package br.com.teste.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.teste.bean.Pais;
import br.com.teste.dao.PaisDAO;
public class PaisServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException {
String descricao = request.getParameter("descricao");
int codigo = Integer.parseInt(request.getParameter("codigo"));
Pais p = new Pais();
p.setDescricao(descricao);
p.setCodigo(codigo);
PaisDAO dao = new PaisDAO();
dao.inserir(p);
}
}
FORM:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
</head>
<body>
<header>Cadastro de Pais</header>
<section id="formulario">
<form name="formCadastroPais" method="post" action="cadastroPais">
<label>Descrição:</label><input type="text" name="descricao"><br/>
<label>Código:</label><input type="text" name="codigo"><br/>
<input type="submit" name="button" value="Cadastrar">
</form>
</section>
</body>
</html>
Stack:
anco não conectado
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/dbteste
at java.sql.DriverManager.getConnection(DriverManager.java:604)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at br.com.teste.factory.Conecta.getConexao(Conecta.java:40)
at br.com.teste.dao.PaisDAO.inserir(PaisDAO.java:18)
at br.com.teste.servlet.PaisServlet.service(PaisServlet.java:34)
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:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
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(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Fev 14, 2013 10:07:45 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [cadastroPais] in context with path [/testeqas] threw exception
java.lang.NullPointerException
at br.com.teste.dao.PaisDAO.inserir(PaisDAO.java:22)
at br.com.teste.servlet.PaisServlet.service(PaisServlet.java:34)
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:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
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(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)