[code]package br.com.caelum.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 br.com.Modelo.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.DAO.*;
public class OiMundo extends HttpServlet{
/**
*
*/
protected void service(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException{
PrintWriter out = response.getWriter();
String nome =request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
String datan =request.getParameter("dataNascimento");
Calendar datanascimento = null;
try {
Date date = new SimpleDateFormat("dd/mm/yyyy").parse(datan);
datanascimento = Calendar.getInstance();
datanascimento.setTime(date);
}
catch
(ParseException e) {
out.println("erro na conveçao");
return;
}
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
contato.setDatanascimento(datanascimento);
ContatoDAO dao = new ContatoDAO();
dao.doinsert(contato);
}
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException ,IOException {
service(request, response);
}
protected void doPost(HttpServletRequest request ,HttpServletResponse response)
throws ServletException ,IOException
{
service(request, response);
}
}
[/code]
minha servlet e esta da erro na converça da data
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
java.text.SimpleDateFormat.parse(Unknown Source)
java.text.DateFormat.parse(Unknown Source)
br.com.caelum.servlet.OiMundo.processRequest(OiMundo.java:38)
br.com.caelum.servlet.OiMundo.doGet(OiMundo.java:58)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
--------------------------------------------------------------------------------
Apache Tomcat/6.0.26
gera este erro =/
<?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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Fj21-agenda</display-name>
<servlet>
<servlet-name>servletOiMundo</servlet-name>
<servlet-class>br.com.caelum.servlet.OiMundo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletOiMundo</servlet-name>
<url-pattern>/oi</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
a xml ae quem puder me ajuda agradeço ^^
Vamos analisar o erro
Ou seja, você está tentando manipular um objeto nulo no método processRequest do arquito OiMundo na linha 38
Que contém o seguinte código
Date date = new SimpleDateFormat("dd/mm/yyyy").parse(datan);
Dando uma analisada, vi que a variável datan é um parâmetro da request cujo você pega o seu valor da seguinte maneira:
request.getParameter("dataNascimento");
Onde o certo é
request.getAttribute("dataNascimento");
Tudo bem que ninguém nasce sabendo, mas, um pouquinho de atenção as mensagens de erro, você teria chego a mesma conclusão!!!
cara tentei isso mais rerpota o mesmo erro
[code]HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
java.text.SimpleDateFormat.parse(Unknown Source)
java.text.DateFormat.parse(Unknown Source)
br.com.caelum.servlet.OiMundo.service(OiMundo.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
[/code]
package br.com.caelum.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 br.com.Modelo.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.DAO.*;
public class OiMundo extends HttpServlet{
/**
*
*/
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
String nome =request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
String datan =(String) request.getAttribute("dataNascimento");
Calendar datanascimento = null;
try {
Date date = new SimpleDateFormat("dd/mm/yyyy").parse(datan);
datanascimento = Calendar.getInstance();
datanascimento.setTime(date);
}
catch
(ParseException e) {
out.println("erro na conveçao");
return;
}
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
contato.setDatanascimento(datanascimento);
ContatoDAO dao = new ContatoDAO();
dao.doinsert(contato);
}
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException ,IOException {
service(request, response);
}
protected void doPost(HttpServletRequest request ,HttpServletResponse response)
throws ServletException ,IOException
{
service(request, response);
}
}
cara nao fiz jsp pq ainda nao aprendir
primeira vez que to mexendo com servlet
entao so fiz o servelt
se puder me ajuda agradeço
Olá,
Ok, isto está ficando confuso. Explica então como você fez para acessar a servlet e ocorrer a exceção?
Acredito que o problema ocorre por causa da forma como a servlet está sendo acessada. Ela não lançaria exceção se não fosse requisitada (o fato de subir o servidor e não acessar a servlet, não implica na ocorrência da exceção)… por isso queria saber como você fez para acessar a sua servlet.
[]s
Achamos o problema então ! rs
Essa classe que você criou, vai interagir com suas jsp’s, que nada mais são, do que suas páginas, com códigos HTML, tags, JSTL e tudo mais.
Da forma como vc criou, só a Servlet não resolve, pois você está buscando parametros de um “request”, que nada mais é do que um “clique” em sua JSP submetendo seu formulário com data de nascimento, etc, etc…
Eu poderia colar aqui uma JSP que acessasse sua Servlet, mas não teria graça! Agora o que vc tem que fazer, é pesquisar, como as paginas jsp interagem com as servlets! Acredite, vai ser muito melhor do que eu colar aqui pronto pra vc.
www.caelum.com.br , lá tem a apostila fj-21, que vai te dar muitos conceitos legais.
[quote=eberson_oliveira]Olá,
Ok, isto está ficando confuso. Explica então como você fez para acessar a servlet e ocorrer a exceção?
[]s[/quote]
Ele deve ter tentado acessar a servlet direto no contexto que ele mapeou : /oi
[quote=weberdls][quote=eberson_oliveira]Olá,
Ok, isto está ficando confuso. Explica então como você fez para acessar a servlet e ocorrer a exceção?
[]s[/quote]
Ele deve ter tentado acessar a servlet direto no contexto que ele mapeou : /oi[/quote]
Se for assim ele poderia simplesmente chamar:
http.../contexto/servlet?nome=jose&endereco=rua2&email=usuario@dominio.com&dataNascimento=dataqq
que já funcionaria… a necessidade de uma jsp/html é evidente, mas pode ser que ele ainda não tenha chegado a esse ponto. Por isso acaba sendo mais simples montar uma url que a servlet entenda.
[]s
[quote=xxjamisxx]cara tentei isso mais rerpota o mesmo erro
[code]HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
java.text.SimpleDateFormat.parse(Unknown Source)
java.text.DateFormat.parse(Unknown Source)
br.com.caelum.servlet.OiMundo.service(OiMundo.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
[/code]
[code]
package br.com.caelum.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 br.com.Modelo.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.DAO.*;
public class OiMundo extends HttpServlet{
/**
*
*/
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
String nome =request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
String datan =(String) request.getAttribute("dataNascimento");
Calendar datanascimento = null;
try {
Date date = new SimpleDateFormat("dd/mm/yyyy").parse(datan);
datanascimento = Calendar.getInstance();
datanascimento.setTime(date);
}
catch
(ParseException e) {
out.println("erro na conveçao");
return;
}
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
contato.setDatanascimento(datanascimento);
ContatoDAO dao = new ContatoDAO();
dao.doinsert(contato);
}
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException ,IOException {
service(request, response);
}
protected void doPost(HttpServletRequest request ,HttpServletResponse response)
throws ServletException ,IOException
{
service(request, response);
}
}
[/code][/quote]
Pelo que você postou aí, não alterou em nada o código anterior!
[quote=eberson_oliveira][quote=weberdls][quote=eberson_oliveira]Olá,
Ok, isto está ficando confuso. Explica então como você fez para acessar a servlet e ocorrer a exceção?
[]s[/quote]
Ele deve ter tentado acessar a servlet direto no contexto que ele mapeou : /oi[/quote]
Se for assim ele poderia simplesmente chamar:
http.../contexto/servlet?nome=jose&endereco=rua2&email=usuario@dominio.com&dataNascimento=dataqq
que já funcionaria… a necessidade de uma jsp/html é evidente, mas pode ser que ele ainda não tenha chegado a esse ponto. Por isso acaba sendo mais simples montar uma url que a servlet entenda.
[]s[/quote]
Sim, outra solução. Ele pode testar passando pela url e depois aprender a forma correta + muitos conceitos com a apostila.
Da forma como vc criou, só a Servlet não resolve, pois você está buscando parametros de um “request”, que nada mais é do que um “clique” em sua JSP submetendo seu formulário com data de nascimento, etc, etc…
não necessariamente!
mesmo sem o JSP você pode acessar a Servlet, a questão deve ser os parametros via GET que vc não passou, debug e veja quais os valores da requisão!
weberdls:
[quote=aeciovc][quote]Da forma como vc criou, só a Servlet não resolve, pois você está buscando parametros de um “request”, que nada mais é do que um “clique” em sua JSP submetendo seu formulário com data de nascimento, etc, etc…
não necessariamente!
mesmo sem o JSP você pode acessar a Servlet, a questão deve ser os parametros via GET que vc não passou, debug e veja quais os valores da requisão![/quote]
[/quote]
Só editando pra arrumar, falei errado mesmo, os caras arrumaram o que eu disse ai
[code]
Formulario
Nome:
E-Mail:
Endereço:
Data Nascimento:
<input type="submit" value="Gravar" />
</form>
[/code]
acesso pelo servlet por aqui
Você está preenchendo todos os campos?
Dá uma “debugada” e verifique o que está chegando para a sua servlet… qualquer coisa coloca os parâmetros que estão chegando na sua servlet para que possamos tentar ajudar.
[]s