Erro HTTP Status 500 -

6 respostas
L

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: Cant 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 <a href="http://javax.persistence.Id">javax.persistence.Id</a>;
@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

6 Respostas

L

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!

L

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: Cant 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.

L

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!

L

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>

L

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!

L

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

Criado 17 de agosto de 2010
Ultima resposta 26 de ago. de 2010
Respostas 6
Participantes 2