[quote=Lilian Rodrigues]estou fazendo um sistema e estou encontrando esse problema:
Grave: Servlet.service() for servlet [AgendaConsulta] in context with path [/OdontoEstetica] threw exception
java.lang.NullPointerException
at br.com.OdontoEstetica.jdbc.Servlet.ServletAgendaConsulta.service(ServletAgendaConsulta.java:59)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
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:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
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:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Minha servlet:
[code]package br.com.OdontoEstetica.jdbc.Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.OdontoEstetica.jdbc.DAO.ConsultasDAO;
import br.com.OdontoEstetica.jdbc.modelo.Consultas;
/**
*/
/**
- Servlet implementation class ServletAgendaConsulta
*/
@WebServlet("/ServletAgendaConsulta")
public class ServletAgendaConsulta extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -1971147769581525008L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
super.doPost(request, response);
}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
// pegando os parametros do request
int codPaciente = (Integer) request.getAttribute("codPaciente");
String nomePaciente = request.getParameter("nomePaciente");
String rg = request.getParameter("rg");
String cpf = request.getParameter("cpf");
String dataNascimentoEmTexto = request.getParameter("dataNascimento");
String endereco = request.getParameter("endereco");
int telefone = (Integer) request.getAttribute("telefone");
String nomeFuncionario = request.getParameter("nomeFuncionario");
String servico = request.getParameter("servico");
String dataHoraConsultaEmTexto = request
.getParameter("dataHoraConsulta");
Double valorConsulta = Double.parseDouble(request
.getParameter("valorConsulta"));
boolean status = (Boolean) request.getAttribute("status");
Calendar dataNascimento = null;
Calendar dataHoraConsulta = null;
// conversão de data de nascimento do paciente
try {
Date datanasc = (Date) new SimpleDateFormat("dd/MM/yyyy")
.parse(dataNascimentoEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(datanasc);
} catch (ParseException e) {
out.println("Erro ao converter data");
return;
}
// conversão de data de consulta
try {
Date dataHConsulta = (Date) new SimpleDateFormat("dd/MM/yyyy")
.parse(dataHoraConsultaEmTexto);
dataHoraConsulta = Calendar.getInstance();
dataHoraConsulta.setTime(dataHConsulta);
} catch (ParseException e) {
out.println("Erro ao converter data");
}
// monta um objeto consultas
Consultas consultas = new Consultas();
consultas.setCodPaciente(codPaciente);
consultas.setNomePaciente(nomePaciente);
consultas.setRG(rg);
consultas.setCPF(cpf);
consultas.setDataNascimento(dataNascimento);
consultas.setEnderecoPaciente(endereco);
consultas.setTelefonePaciente(telefone);
consultas.setNomeFuncionario(nomeFuncionario);
consultas.setServico(servico);
consultas.setDataHoraConsulta(dataHoraConsulta);
consultas.setValorConsulta(valorConsulta);
consultas.setStatus(status);
// salva a consulta
ConsultasDAO dao = new ConsultasDAO();
dao.adiciona(consultas);
RequestDispatcher rd = request.getRequestDispatcher("/Gravado.jsp");
rd.forward(request, response);
}
}
[/code]
[code]package br.com.OdontoEstetica.jdbc.DAO;
/**
*/
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.OdontoEstetica.jdbc.ConnectionFactory;
import br.com.OdontoEstetica.jdbc.modelo.Consultas;
public class ConsultasDAO {
private Connection connection;
public ConsultasDAO(){
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Consultas consultas){
String sql = "insert into agenda_consulta(codPaciente, nomePaciente, rg, cpf, datanascimento, endereco, telefone, codFuncionario, nomeFuncionario, servico, dataHoraConsulta, codProduto, nomeProduto, preco, status) values(?, ?, ?, ?, ? , ?, ?, ?, ?, ?, ?, ? , ?) ";
try{
// PreparedStatement para inserção
PreparedStatement stmt = connection.prepareStatement(sql);
//seta os valores
stmt.setInt(1, consultas.getCodPaciente());
stmt.setString(2, consultas.getNomePaciente());
stmt.setString(3,consultas.getRG());
stmt.setString(4,consultas.getCPF());
stmt.setDate(5,(java.sql.Date) new Date(consultas.getDataNascimento().getTimeInMillis()));
stmt.setString(6,consultas.getEnderecoPaciente());
stmt.setInt(7,consultas.getTelefonePaciente());
stmt.setString(8,consultas.getServico());
stmt.setDate(9, (java.sql.Date) new Date(consultas.getDataNascimento().getTimeInMillis()));
stmt.setInt(10, consultas.getCodProduto());
stmt.setString(11,consultas.getNomeProduto());
stmt.setDouble(12, consultas.getValorConsulta());
stmt.setBoolean(13,consultas.isStatus());
//executa
stmt.execute();
stmt.close();
}catch (SQLException e){
throw new RuntimeException(e);
}
}
public void altera (Consultas consultas){
String sql = "update agenda_consulta set codPaciente= ?, nomePaciente= ?, rg= ?, cpf= ?, datanascimento= ?, endereco= ?, telefone= ?, codFuncionario= ?, nomeFuncionario= ?, servico= ?, dataHoraConsulta= ?, codProduto= ?, nomeProduto= ?, preco= ?, status where codConsulta= ?";
try{
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, consultas.getCodPaciente());
stmt.setString(2, consultas.getNomePaciente());
stmt.setString(3,consultas.getRG());
stmt.setString(4,consultas.getCPF());
stmt.setDate(5, (java.sql.Date) new Date(consultas.getDataNascimento().getTimeInMillis()));
stmt.setString(6,consultas.getEnderecoPaciente());
stmt.setInt(7,consultas.getTelefonePaciente());
stmt.setString(8,consultas.getServico());
stmt.setDate(9, (java.sql.Date) new Date(consultas.getDataNascimento().getTimeInMillis()));
stmt.setInt(10, consultas.getCodProduto());
stmt.setString(11,consultas.getNomeProduto());
stmt.setDouble(12, consultas.getValorConsulta());
stmt.setBoolean(13,consultas.isStatus());
stmt.setInt(14,consultas.getCodConsulta());
stmt.execute();
stmt.close();
}catch (SQLException e){
throw new RuntimeException(e);
}
}
public void remove(Consultas consultas){
try{
PreparedStatement stmt = connection.prepareStatement("delete from agenda_consulta where codConsulta= ?");
stmt.setInt(1,consultas.getCodConsulta());
stmt.execute();
stmt.close();
}catch (SQLException e){
throw new RuntimeException(e);
}
}
}
[/code]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>OdontoEstetica</display-name>
<welcome-file-list>
<welcome-file>odonto_login.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>br.com.OdontoEstetica.jdbc.Servlet.ServletLogin</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AgendaConsulta</servlet-name>
<servlet-class>br.com.OdontoEstetica.jdbc.Servlet.ServletAgendaConsulta</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AgendaConsulta</servlet-name>
<url-pattern>/agenda_consultas</url-pattern>
</servlet-mapping>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/Error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/Error.jsp</location>
</error-page>
</web-app>
[code]package br.com.OdontoEstetica.jdbc.modelo;
/**
*/
import java.util.Calendar;
public class Consultas {
private int codConsulta;
private int codPaciente;
private String nomePaciente;
private String RG;
private String CPF;
private Calendar dataNascimento;
private String enderecoPaciente;
private int telefonePaciente;
private int codFuncionario;
private String nomeFuncionario;
private String servico;
private Calendar dataHoraConsulta;
private int codProduto;
private String nomeProduto;
private double valorConsulta;
private boolean status;
//getters end setters
public int getCodConsulta() {
return codConsulta;
}
public void setCodConsulta(int codConsulta) {
this.codConsulta = codConsulta;
}
public int getCodPaciente() {
return codPaciente;
}
public void setCodPaciente(int codPaciente) {
this.codPaciente = codPaciente;
}
public String getNomePaciente() {
return nomePaciente;
}
public void setNomePaciente(String nomePaciente) {
this.nomePaciente = nomePaciente;
}
public String getRG() {
return RG;
}
public void setRG(String rG) {
RG = rG;
}
public String getCPF() {
return CPF;
}
public void setCPF(String cPF) {
CPF = cPF;
}
public Calendar getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Calendar dataNascimento) {
this.dataNascimento = dataNascimento;
}
public String getEnderecoPaciente() {
return enderecoPaciente;
}
public void setEnderecoPaciente(String enderecoPaciente) {
this.enderecoPaciente = enderecoPaciente;
}
public int getTelefonePaciente() {
return telefonePaciente;
}
public void setTelefonePaciente(int telefonePaciente) {
this.telefonePaciente = telefonePaciente;
}
public int getCodFuncionario() {
return codFuncionario;
}
public void setCodFuncionario(int codFuncionario) {
this.codFuncionario = codFuncionario;
}
public String getNomeFuncionario() {
return nomeFuncionario;
}
public void setNomeFuncionario(String nomeFuncionario) {
this.nomeFuncionario = nomeFuncionario;
}
public String getServico() {
return servico;
}
public void setServico(String servico) {
this.servico = servico;
}
public Calendar getDataHoraConsulta() {
return dataHoraConsulta;
}
public void setDataHoraConsulta(Calendar dataHoraConsulta) {
this.dataHoraConsulta = dataHoraConsulta;
}
public int getCodProduto() {
return codProduto;
}
public void setCodProduto(int codProduto) {
this.codProduto = codProduto;
}
public String getNomeProduto() {
return nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public double getValorConsulta() {
return valorConsulta;
}
public void setValorConsulta(double valorConsulta) {
this.valorConsulta = valorConsulta;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
}
[/code]
[code]<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
Agendamento de Consultas
<div id="container">
<div id="container-inner">
<div id="header">
<h1>Odonto&Estética</h1>
<div class="clear"></div>
</div>
<!-- end header -->
<div id="banner">
<div id="slogan">
<p>
Nossa Única <span class="slogan-big"><strong>Missão</strong></span><br>
é mudar o seu <span class="slogan-big"><strong>Sorriso</strong></span>
para melhor
</p>
</div>
<!-- end slogan -->
<div id="nav">
<ul id="MenuBar1" class="MenuBarHorizontal">
<li><a href="odonto_menu.jsp" title="Home">Home</a>
</li>
<li><a href="#" class="MenuBarItemSubmenu">Cadastros</a>
<ul>
<li><a href="odonto_cdlogin.jsp">Cadastro de Usuários</a></li>
<li><a href="odonto_cdfunc.jsp">Cadastro de Funcionários</a></li>
<li><a href="odonto_cdforn.jsp">Cadastro de Fornecedores</a></li>
<li><a href="odonto_cdprod.jsp">Cadastro de Produtos</a></li>
<li><a href="odonto_cdpac.jsp">Cadastro de Pacientes</a></li>
<li><a href="odonto_agcon.jsp">Cadastro de Consultas</a></li>
</ul>
</li>
<li><a class="MenuBarItemSubmenu" href="#">Manutenção de Cadastros</a>
<ul>
<li><a href="odonto_mlogin.jsp">Manutenção de Usuários</a></li>
<li><a href="odonto_mfunc.jsp">Manutenção de Funcionários</a></li>
<li><a href="odonto_mforn.jsp">Manutenção de Fornecedores</a></li>
<li><a href="odonto_mprod.jsp">Manutenção de Produtos</a></li>
<li><a href="odonto_mpac.jsp">Manutenção de Pacientes</a></li>
<li><a href="odonto_mconsultas.jsp">Manutenção de Consultas</a></li>
</ul>
</li>
<li><a href="#" class="MenuBarItemSubmenu">Relatórios</a>
<ul>
<li><a href="javascript:abreJanela()">Relatório Histórico de Consultas</a></li>
<li><a href="javascript:abreJanela()">Relatório Contas a Pagar</a></li>
<li><a href="javascript:abreJanela()">Relatório Contas a Receber</a></li>
</ul>
</li>
<li><a href="Pesquisa.jsp">Pesquisa</a></li>
</ul>
</div>
<!-- end nav -->
</div>
<!-- end banner -->
<div id="main">
<div id="content">
<h2>Agendamento de Consultas</h2>
<form action="agenda_consultas" method="post">
<table>
<tr>
<td><label>Código da Consulta:</label></td>
<td><input type="text" name="codConsulta" maxlength=10/></td>
</tr>
<tr>
<td><label>Código do Paciente:</label></td>
<td><input type="text" name="codPaciente" maxlength=10/></td>
</tr>
<tr>
<td><label>Nome do Paciente:</label></td>
<td><input type="text" name="nomePaciente" size="80"
maxlength=50 /></td>
</tr>
<tr>
<td><label>RG:</label></td>
<td><input type="text" name="rg" maxlength=9/></td>
</tr>
<tr>
<td><label>CPF:</label></td>
<td><input type="text" name="cpf" maxlength=11/></td>
</tr>
<tr>
<td><label>Data de Nascimento:</label></td>
<td><input type="text" name="dataNascimento" maxlength=10/></td>
</tr>
<tr>
<td><label>Endereço:</label></td>
<td><input type="text" name="endereco" size="80"
maxlength=50 /></td>
</tr>
<tr>
<td><label>Telefone:</label></td>
<td><input type="text" name="telefone" maxlength=11/></td>
</tr>
<tr>
<td><label>Nome do Dentista:</label></td>
<td><input type="text" name="nomeFuncionario" size="80"
maxlength=50 /></td>
</tr>
<tr>
<td><label>Data e Hora da Consulta:</label></td>
<td><input type="text" name="dataHoraConsulta" /></td>
</tr>
<tr>
<td><label>Serviço:</label></td>
<td><select name="servicos" id="servico">
<option value="#" selected="selected">------</option>
<option value="obturacao">Obturação</option>
<option value="limpeza">Limpeza</option>
<option value="extracao">Extração</option>
</select></td>
</tr>
<tr>
<td><label>Preço:</label></td>
<td><input type="text" name="valorConsulta" /></td>
</tr>
<tr>
<td><label>Status:</label></td>
<td><input type="radio" name="status" id="radio_a"
value="1" />Ativo <input type="radio" name="status"
id="radio_i" value="0" />Inativo</td>
</tr>
</table>
<table>
<tr>
<td><input type="submit" value="Cadastrar" /></td>
<td><input type="reset" value="Limpar" /></td>
</tr>
</table>
</form>
</div>
<!-- end content -->
<div class="sidebar"></div>
<!-- end sidebar -->
<div class="clear"></div>
</div>
<!-- end main -->
</div>
<!-- end container-inner -->
</div>
<!-- end container -->
<div id="footer">
<p>©Copyright 2012</p>
</div>
<!-- end footer -->
[/code]
[/quote]