[Resolvido]Erro no codigo

5 respostas
E

Minha aplicação sempre mostra essa menssagem.Eu digito o nome e sobre nome e envio, dae aparece isso:

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: java.lang.NullPointerException
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	net.antoniopassos.appwebsaudacao.controle.ServletController.processaRequisicao(ServletController.java:33)
	net.antoniopassos.appwebsaudacao.controle.ServletController.doPost(ServletController.java:21)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause 

java.lang.NullPointerException
	org.apache.jsp.saudacao_jsp._jspService(saudacao_jsp.java:67)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	net.antoniopassos.appwebsaudacao.controle.ServletController.processaRequisicao(ServletController.java:33)
	net.antoniopassos.appwebsaudacao.controle.ServletController.doPost(ServletController.java:21)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	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.29 logs.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.29
package net.antoniopassos.appwebsaudacao.controle;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.antoniopassos.appwebsaudacao.modelo.Pessoa;

public class ServletController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response);
	}

	public void processaRequisicao(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String nome=request.getParameter("nome");
		String sobrenome=request.getParameter("sobrenome");
		Pessoa bean=new Pessoa();
		bean.setNome(nome);
		bean.setNome(sobrenome);

		request.setAttribute("PessoaBean", bean);
		RequestDispatcher view=request.getRequestDispatcher("saudacao.jsp");
		view.forward(request, response);}


}
package net.antoniopassos.appwebsaudacao.modelo;

public class Pessoa {
	private String nome;
	private String sobrenome;

	public Pessoa(){
		this.nome=null;
		this.sobrenome=null;
	}
	public Pessoa(String nome,String sobrenome){
		this.nome=nome;
		this.sobrenome=sobrenome;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getSobrenome() {
		return sobrenome;
	}
	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}
	public String getNomeCompleto(){
		return this.nome +"" +this.sobrenome;
	}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>DAWJ AppWebSaudacao</title>
</head>
<body>
<h1>DAWJ AppWebSaudacao</h1>
<p>Informe seu nome e sobrenome e,em seguida,clique em
<b>Enviar</b></p>
<form action="Controller"method="post"">
<table>

	<tr>
		<td>Nome</td>
		<td><input type="text"name="nome"></td>
	</tr>
	
	<tr>
		<td>Sobrenome</td>
		<td ><input type="text"name="sobrenome"></td>
	</tr>
	
	<tr>
		<td cosplan="2">
		<input type="submit"value="Enviar">
		<input type="reset"value="Limpar">
		</td>
	</tr>
	
</table>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>DAWJ AppWebSaudacao</title>
</head>
<body>
<% 
net.antoniopassos.appwebsaudacao.modelo.Pessoa pessoa=
(net.antoniopassos.appwebsaudacao.modelo.Pessoa)request.getAttribute("PessoaBen");
%>
Olá<%=pessoa.getNomeCompleto()%>!
<forma action="index.jsp"method="post">
<input type="submit" value="Voltar">
</form>
</body>
</html>

5 Respostas

Hebert_Coelho

oq tem nessa linha? saudacao_jsp.java:67

R

Boa noite meu amigo, não sei muito em Java.. mas vamos lá...

Na sua jsp você está colocando sua action como:

<form action="Controller"method="post"">

Está mapeado Controller no seu web.xml ? ou vc deixou padrão quando criou o Servlet ?
se deixou padrão, então coloque:

<form action="ServletController"method="post"">

eu prefiro fazer assim:

se vc conseguir adaptar no seu.. se quiser... ;)
vamos lá..:

package net.antoniopassos.appwebsaudacao.controle;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.antoniopassos.appwebsaudacao.modelo.Pessoa;

public class ServletController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		execute(request,response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		execute(request, response);
	}


                 public void processaRequisicao(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
                 
		String cmd = request.getParameter("");

		if (cmd.equalsIgnoreCase("processaRequisicao")) {
			processaRequisicao(request, response);

		}
                                  
                   }

	public void processaRequisicao(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String nome=request.getParameter("nome");
		String sobrenome=request.getParameter("sobrenome");
		Pessoa bean=new Pessoa();
		bean.setNome(nome);
		bean.setNome(sobrenome);

		request.setAttribute("PessoaBean", bean);
		RequestDispatcher view=request.getRequestDispatcher("saudacao.jsp");
		view.forward(request, response);}


}

Aí na JSP eu faria assim:

<form action="ServletController?cmd=processaRequisicao" method="post"">

bom.. vamos lá ao seu problema:

ao invés de usar esta linha aqui:

request.setAttribute("PessoaBean", bean);   
        RequestDispatcher view=request.getRequestDispatcher("saudacao.jsp");   
        view.forward(request, response);}

Tenta fazer assim:

request.setAttribute("PessoaBean", bean);
request.getRequestDispatcher("saudacao.jsp").forward(request, response);

bom cara... olha ai.. mas em todos os casos.. eu resolvi o seu problema..vou postar abaixo.

R

SÓ MUDE OS PACOTES... ok ? (package)

Pessoa:

package entity;

public class Pessoa {
	private String nome;
	private String sobrenome;

	public Pessoa() {
	}

	public Pessoa(String nome, String sobrenome) {
		this.nome = nome;
		this.sobrenome = sobrenome;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSobrenome() {
		return sobrenome;
	}

	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}

	public String getNomeCompleto() {
		return this.nome + " " + this.sobrenome;
	}
}

ServletController:

package control;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import entity.Pessoa;

public class ServletController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response);
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response);
	}

	public void processaRequisicao(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		String nome = request.getParameter("nome");
		String sobrenome = request.getParameter("sobrenome");

		Pessoa bean = new Pessoa(nome, sobrenome);

		request.setAttribute("PessoaBean", bean);

		request.getRequestDispatcher("saudacao.jsp").forward(request, response);
	}

}

index.jsp (formulário):

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>DAWJ AppWebSaudacao</title>
</head>
<body>
	<h1>DAWJ AppWebSaudacao</h1>
	<p>
		Informe seu nome e sobrenome e,em seguida,clique em <b>Enviar</b>
	</p>
	<form action="ServletController" method="post">
		<table>

			<tr>
				<td>Nome</td>
				<td><input type="text" name="nome"></td>
			</tr>

			<tr>
				<td>Sobrenome</td>
				<td><input type="text" name="sobrenome"></td>
			</tr>

			<tr>
				<td cosplan="2"><input type="submit" value="Enviar"> <input
					type="reset" value="Limpar"></td>
			</tr>

		</table>
	</form>
</body>
</html>

saudacao.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>DAWJ AppWebSaudacao</title>
</head>
<body>

	Olá ${PessoaBean.nome} ${PessoaBean.sobrenome}


	<forma action="index.jsp" method="post"> <input type="submit"
		value="Voltar">
	</form>
</body>
</html>

Abraços, qualquer coisa... só perguntar amigo.

E

obrigado pela ajuda

R

Tem mais alguma dúvida amigo ? se não tiver, mude o Assunto do tópico como -> [RESOLVIDO] Erro no codigo. (Coloquei um [RESOLVIDO] antes…)

Abraços…

Criado 18 de janeiro de 2012
Ultima resposta 19 de jan. de 2012
Respostas 5
Participantes 3