Erro HTTP Status 500 -

Alguem pode me ajudar?
Eu estou fazendo uma tela e cadastro usando JSF e hibernate no Eclipse.
Quando clico em gravar ele esta gravando no banco e dados porém aparece a seguinte mensagem de erro:

HTTP Status 500 -


type Exception report

message

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

exception

javax.servlet.ServletException: #{idiomaBean.salvar}: java.lang.ExceptionInInitializerError
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

javax.faces.FacesException: #{idiomaBean.salvar}: java.lang.ExceptionInInitializerError
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError
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)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

java.lang.ExceptionInInitializerError
controle.IdiomaBean.salvar(IdiomaBean.java:22)
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:172)
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)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

java.util.MissingResourceException: Can’t find bundle for base name Mensagem, locale pt_BR
java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
java.util.ResourceBundle.getBundleImpl(Unknown Source)
java.util.ResourceBundle.getBundle(Unknown Source)
util.SessionUtil.(SessionUtil.java:10)
controle.IdiomaBean.salvar(IdiomaBean.java:22)
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:172)
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)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.


Apache Tomcat/6.0.20

Criei uma pagina .jsp com o seguinte código:
<%@ taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@ taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>
<%@ taglib prefix=“a4j” uri=“http://richfaces.org/a4j” %>
<%@ taglib prefix=“rich” uri=“http://richfaces.org/rich” %>
<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>

Cadastro de Idiomas

	<h:panelGrid columns="2">
	<h:outputText value="Descrição: "></h:outputText>
	<h:inputText id="desc_idioma" value="#{idiomaBean.idioma.desc_idioma}" size="50" required="true"></h:inputText>
	<h:message for="desc_idioma" style="color: darkred"></h:message>		
	</h:panelGrid>		
	
	<h:commandButton value="Salvar" action="#{idiomaBean.salvar}"></h:commandButton>

</h:form>

</f:view>

Tenho um arquivo messages.properties dentro de src com o seguinte codigo:
OperacaoSucesso=Operação concluída com sucesso!
OperacaoFracasso=Operação não concluída!

Criei uma clase hibernate.util dentro da package util com o seguinte código:

package util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {

private static SessionFactory factory;

static {
	AnnotationConfiguration configuration = new AnnotationConfiguration();
	configuration.configure();
	
	factory = configuration.buildSessionFactory();		
}

public static Session getSession() {
	return factory.openSession();
}

}

Criei uma classe SessionUtil.java dentro da package util com oseguinte codigo:
package util;

import java.util.ResourceBundle;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

public class SessionUtil {

private static ResourceBundle bundle = ResourceBundle.getBundle("Mensagem",
		FacesContext.getCurrentInstance().getViewRoot().getLocale());

public static void addErrorMessage(String msg) {
	msg = bundle.getString(msg);
	FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
	FacesContext fc = FacesContext.getCurrentInstance();
	fc.addMessage(null, facesMsg);
}

public static void addSucessMessage(String msg) {
	msg = bundle.getString(msg);
	FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
	FacesContext fc = FacesContext.getCurrentInstance();
	fc.addMessage("Sucesso", facesMsg);
}

}

Meu hibernate.cfg.xml possui o seguinte código:

<?xml version="1.0" encoding="UTF-8"?> jdbc:mysql://localhost/newways com.mysql.jdbc.Driver org.hibernate.dialect.MySQLDialect root
	<property name="hibernate.show_sql">true</property>
	<property name="hibernate.format_sql">true</property>
	
	<property name="hibernate.hbm2ddl.auto">update</property>
	
	<property name="hibernate.c3p0.min_size">5</property>
	<property name="hibernate.c3p0.max_size">20</property>
	<property name="hibernate.c3p0.timeout">180</property>
	<property name="hibernate.c3p0.idle_test_period">100</property>
	
	<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
	
	<mapping class="entidades.Idioma"/>
</session-factory>

dentro da package entidades criei a classe Idioma.java:

package entidades;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Idioma {
@Id
@GeneratedValue
private int cd_idioma;
private String desc_idioma;

public int getCd_idioma() {return cd_idioma;}
public String getDesc_idioma() {return desc_idioma;}

public void setCd_idioma(int cd_idioma) {
	this.cd_idioma = cd_idioma;
}
public void setDesc_idioma(String desc_idioma) {
	this.desc_idioma = desc_idioma;
}

}

dentro da package controle criei uma classe IdiomaBean.java com o seguinte código:
package controle;

import org.hibernate.Transaction;
import org.hibernate.Session;
import entidades.Idioma;
import util.HibernateUtil;
import util.SessionUtil;

public class IdiomaBean {

private Idioma idioma = new Idioma();

public String salvar() {
	//Cria a sessao com o banco e a transaçao
	Session session = HibernateUtil.getSession();
	Transaction t = session.beginTransaction();
	
	try {
		//salva o objeto curso e se der tudo certo comita a transação
		session.merge(idioma);
		t.commit();
		SessionUtil.addSucessMessage("Operação concluída com sucesso");
		//limpa o objeto idioma para novas inserções
		idioma = new Idioma();			
	} catch (Exception e) {
		// se ocorrer algo errado cancela a transacao
		t.rollback();
		SessionUtil.addErrorMessage("Falha na operação");
	} finally {
		//fecha a sessao com o banco de dados
		session.close();
	}
	return null;
}

public Idioma getIdioma() {
	return idioma;
}

public void setIdioma(Idioma idioma) {
	this.idioma = idioma;
}	

}

meu web.xml possui o seguinte codigo:

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


Projeto

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp


org.richfaces.SKIN








deepMarine


javax.faces.STATE_SAVING_METHOD
server

Ajax4jsf Filter ajax4jsf org.ajax4jsf.Filter ajax4jsf Faces Servlet REQUEST FORWARD INCLUDE Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/* *.jsf

Olá, luaandra,

Erro:

A causa do seu erro é esta:
- java.util.MissingResourceException: Can’t find bundle for base name Mensagem, locale pt_BR

Quer dizer que, não foi possível encontrar o bundle “Mensagem” dentro da sua aplicação, como especificado no seu código:
- private static ResourceBundle bundle = ResourceBundle.getBundle(“Mensagem”, FacesContext.getCurrentInstance().getViewRoot().getLocale());

Solução:

A solução é simples, primeiro, o arquivo que você criou, é o messages.properties que está no diretório src, onde estão os fontes (*.java) da sua aplicação.
Dentro do seu SessionUtil, mude a chamada para o bundle, dessa forma:

Certifique-se também de não colocar este arquivo dentro de nenhum pacote. Caso seja necessário deixá-lo dentro de algum pacote, a chamada acrescentaria o pacote, em vez de “messages”, ficaria, por exemplo, “com.teste.messages”.

Abraço!

boa noite Leandro,

Valeu pela dica. Após a correção apareceu o seguinte erro:

HTTP Status 500 -

type Exception report

message

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

exception

javax.servlet.ServletException: #{idiomaBean.salvar}: java.lang.ExceptionInInitializerError
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

javax.faces.FacesException: #{idiomaBean.salvar}: java.lang.ExceptionInInitializerError
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError
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)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

java.lang.ExceptionInInitializerError
controle.IdiomaBean.salvar(IdiomaBean.java:29)
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:172)
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)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

java.util.MissingResourceException: Can’t find bundle for base name util.messages, locale pt_BR
java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
java.util.ResourceBundle.getBundleImpl(Unknown Source)
java.util.ResourceBundle.getBundle(Unknown Source)
util.SessionUtil.(SessionUtil.java:10)
controle.IdiomaBean.salvar(IdiomaBean.java:29)
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:172)
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)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.

luaandra,

Está ocorrendo praticamente o mesmo erro, só que agora, o bundle está no pacote “util” com o nome de “messages.properties”.

Erro:

  • java.util.MissingResourceException: Can’t find bundle for base name util.messages, locale pt_BR

Neste seu projeto consta o bundle neste pacote e com este nome, “util.messages.properties” ???

Abraço!

Oi Leandro,

A estrutura de código está montada da seguite forma:

-Dentro do pacote util está criada a classe SessionUtil. Segue abaixo o seu código:

package util;

import java.util.ResourceBundle;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

public class SessionUtil {

private static ResourceBundle bundle = ResourceBundle.getBundle("messages", 
		FacesContext.getCurrentInstance().getViewRoot().getLocale());	

public static void addErrorMessage(String msg) {
	msg = bundle.getString(msg);
	FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
	FacesContext fc = FacesContext.getCurrentInstance();
	fc.addMessage(null, facesMsg);
}

public static void addSucessMessage(String msg) {
	msg = bundle.getString(msg);
	FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
	FacesContext fc = FacesContext.getCurrentInstance();
	fc.addMessage("Sucesso", facesMsg);
}

}

  • Na raiz do src eu foi criado um arquivo chamado messages.properties com o seguinte conteudo:

OperacaoSucesso=Operação concluída com sucesso!
OperacaoFracasso=Operação não concluída!

-No arquivo .jsp quando eu faço a chamada das mensagens de erro, está da seguinte forma:

<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%@ taglib uri=“http://richfaces.org/a4j” prefix=“a4j” %>
<%@ taglib uri=“http://richfaces.org/rich” prefix=“rich” %>
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1” pageEncoding=“ISO-8859-1”%>

Cadastro de Idiomas

	<h:commandButton value="Salvar" action="#{idiomaBean.salvar}"></h:commandButton>
</h:form>

</f:view>

Cara,

Se o path do bundle estiver assim:

  • src/messages.properties

E a sua chamada estiver assim:

  • ResourceBundle.getBundle(“messages”, …

Tem que funcionar! Se não estiver funcionando, cara, alguma magia negra tá rolando ai! hehe…

Espero ter ajudado,
Abraço!

Oi Leandro,
Pior que não era magia negra… era mancada minha mesma… Consegui resolver o problema. Obrigado pela ajuda!!!
La no sessionUtils eu havia escrito sucess ao invéz de success