Erro q nao entendo

10 respostas
Deluxe

Galera
to Utilizando o Eclipse Europa para programar JSF
quando cliko no botao incluir para incluir um dado no banco..
aparece isso

type Exception report

message 

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

exception 

javax.servlet.ServletException: #{meuBean.incluir}: java.lang.NullPointerException
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

javax.faces.FacesException: #{meuBean.incluir}: java.lang.NullPointerException
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

javax.faces.el.EvaluationException: java.lang.NullPointerException
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

java.lang.NullPointerException
	br.com.MeuBean.incluir(MeuBean.java:49)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.apache.el.parser.AstValue.invoke(AstValue.java:131)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


note The full stack trace of the root cause is available in the JBossWeb/2.0.0.GA logs.


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

JBossWeb/2.0.0.GA

Se alguem quiser ver a classe bean e a classe do Banco pra analisar é so falar que eu coloco
t+

10 Respostas

lmuci

vc mapeou essa sua classe meuBean no faces-config.xml? como esta a chamada na sua pagina???

Deluxe

entao
o config.

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
    version="1.2">
	<managed-bean>
		<managed-bean-name>
		meuBean</managed-bean-name>
		<managed-bean-class>
		br.com.MeuBean</managed-bean-class>
		<managed-bean-scope>
		session</managed-bean-scope>
	</managed-bean>
	<navigation-rule>
		<display-name>
		p1</display-name>
		<from-view-id>
		/p1.jsp</from-view-id>
		<navigation-case>
			<from-outcome>
			sucess</from-outcome>
			<to-view-id>
			/p1.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>

</faces-config>

ta ok?

Giulliano

segundo seu stacktrace:

java.lang.NullPointerException
br.com.MeuBean.incluir(MeuBean.java:49)

manda pra gente o que acontece nessa hora…

Deluxe

A classe bean junto com o método incluir onde ta dando o erro
também tem um método lista que lista os dados do banco mais não estou usando ele.

package br.com;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class MeuBean {

	private int idCurso= 0;
	private String curso="";
	private String status="";
	public String getCurso() {
		return curso;
	}
	public void setCurso(String curso) {
		this.curso = curso;
	}
	public int getIdCurso() {
		return idCurso;
	}
	public void setIdCurso(int idCurso) {
		this.idCurso = idCurso;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public ResultSet getLista() throws InstantiationException, IllegalAccessException  {
		ResultSet	rs = null;
		Connection cn = Conexao.obterConexao();
		PreparedStatement pst = null;
		try{
			pst =   cn.prepareStatement("select idcurso, curso from cursos");
			rs =   pst.executeQuery();	
		} catch (SQLException e) {
			// TODO: handle exception
		}
		return rs;
	}
	
	public void incluir () throws InstantiationException, IllegalAccessException{
		Connection cn = Conexao.obterConexao();
		PreparedStatement pst = null;
		try{
			pst = cn.prepareStatement("insert into cursos(curso) values(?)");
			pst.setString(1, curso);
			pst.executeUpdate();
			status = curso + " Incluido com Sucesso ";
			}
		catch (SQLException e ){
			status = " Falha na inclusão: " + e.getMessage();
		}
	}
}
furutani
O erro está na linha 49 da classe MeuBean.java
# java.lang.NullPointerException  
#     br.com.MeuBean.incluir(MeuBean.java:49)
Procure saber onde está a linha 49 e por que o objeto está nulo.
lmuci

Opa desculpe a demora… realmente como o nosso amigo disse acima parece que esse atributo da sua classe esta vindo vazio vc ja experimentou dar uma debugada nesse metodo, ou coloca um System.out.println e ve o que ta vindo na hora que vc submete a pagina… na sua jsp como vc esta usando esse atributo (curso) da sua classe??

Exemplo com IceFaces:
<ice:inputText value="#{meuBean.Atributo}" maxlength=“50” styleClass=“txt” size=“70”/>
<ice:commandButton value=“Incluir” action="#{meuBean.metodoIncluir}" styleClass=“botoes”/>

abs…

Deluxe

entao galera
Eu ja peguei o mesmo projeto, igualzinho e testei com o tomcat, sem usar o eclipse europa.. e deu tudo certo..

segue a jsp/jsf
obs: coloquei o conector jdbc.myql tb..

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<HTML>
<HEAD>
<title> JSF</title> 
<LINK href="estilo.css" type="text/css" rel="stylesheet">
</HEAD>


<body bgcolor="white">

	
	<f:view>
	<h:form>
	<center><h2> INCLUIR NOVO CURSO</h2></center>
<table align="center">

<tr>
	<td> Curso:</td>
	<td><h:inputText value="#{meuBean.curso}"/></td>
</tr>

<tr><td colspan="2" align="center">
<h:commandButton value="INCLUIR" action="#{meuBean.incluir}"/>
</td>
</tr>

<tr>
<td colspan="2">
<h:outputText id="resultado" value="#{meuBean.status}" />
</td>
</tr>
</table>
</h:form>
</f:view>
</body>
</HTML>

nao sei mesmo
tem alguma configuração pra usar o banco de dados no europa?
tem o mesmo projeto no eclipse classico
so pq eu to acessando o tomcat por fora e da certo

Giulliano

Se vc usar Eclipse vai ser de um jeito…se usar netbeans vai ser de outro e quando vc gerar um arquivo war e manda pra sua infra-estrutura ou cliente atualizar no servidor de produção vai ser diferente tb…

Então o legal é vc sempre conhecer os mais variados modos de subir uma aplicação e tetar entender os erros… Dá uma olhada legal no que acontece de diferente entre um e outro…

Deluxe

certo
alguem tem uma luz do que possa ser isso?
=\

lmuci

como esta o seu web.xml ?? no netbeans funcionou?

com.sun.faces.verifyObjects false com.sun.faces.validateXml true javax.faces.STATE_SAVING_METHOD client Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/* 30 faces/index.jsp
Criado 20 de maio de 2008
Ultima resposta 21 de mai. de 2008
Respostas 10
Participantes 4