Como exibir todos os erros

2 respostas
Rafael_Afonso

Olá:

Tenho uma aplicação Web com Struts. Meu problema é que ás vezes quando é disparada alguma exceção, esta não é exibida no browser. Simplesmente é exibida uma página em branco. No web.xml defini o seguinte:

<error-page>
		<exception-type>java.lang.Exception</exception-type>
		<location>/home/erro.jsp</location>
	</error-page>

Mas mesmo assim aparece a tal página em branco.
As páginas tem a tag <%@ page errorPage="/home/erro.jsp"%>. E a página erro.jsp está definida assim:

&lt;%@ page isErrorPage="true" %&gt;
&lt;%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %&gt;
&lt;%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;title&gt;ERRO!&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;h1&gt;ERRO!&lt;/h1&gt;
		&lt;b&gt;&lt;font color="#FF0000"&gt;&lt;%= exception %&gt;&lt;/font&gt;&lt;/b&gt;
		&lt;p&gt;&lt;/p&gt;
		&lt;code&gt;
&lt;%--
			&lt;% exception.printStackTrace&#40;out&#41;; %&gt;
--%&gt;
		&lt;/code&gt;
	&lt;/body&gt;
&lt;/html&gt;

Aliás aqui tem outra coisa estranha: se eu descomento a linha <% exception.printStackTrace(out); %> aparece uma exceção (no console, não no browser) dizendo que não sabe o que é out:

C&#58;javaTomcat 4.1workStandalonelocalhostinformaWEBhomeerro_jsp.java&#58;73&#58; cannot resolve symbol
symbol  &#58; method printStackTrace &#40;javax.servlet.jsp.JspWriter&#41;
location&#58; class java.lang.Throwable
 exception.printStackTrace&#40;out&#41;;

Ora! out não é um dos objetos implícito numa página JSP? Não entendi isso.

Grato,

2 Respostas

ricardolecheta

Rafael, estou com um problema parecido com o web.xml... mas sobre o Struts eu sei como resolver...

vc pode fazer isto de outra forma usando o struts, no struts-config.xml
&lt;!-- ========== Global Exception Definitions ============================== --&gt;
	&lt;global-exceptions&gt;

		&lt;exception type=&quot;java.lang.Exception&quot; key=&quot;exception.key&quot; 
			path=&quot;/jsp/errorexception.jsp&quot; /&gt;
	&lt;/global-exceptions&gt;

ai, sempre que sua action lançar uma Exception que vc definiu ai no global-exceptions, o Struts redireciona para esta página.

ai no jsp vc pode recuperar a excessão:

&lt;%@ page isErrorPage=&quot;true&quot;  %&gt;
&lt;%@ page
language=&quot;java&quot;
contentType=&quot;text/html; charset=ISO-8859-1&quot;
%&gt;

&lt;%
   Exception servleterrorreport
= &#40;Exception&#41;request.getAttribute&#40;org.apache.struts.Globals.EXCEPTION_KEY&#41;;
%&gt;
ricardolecheta

agora tb perguntando sobre o web.xml, eu estava testando aqui e coloquei a seguinte definição no web.xml:

&lt;!-- Error --&gt;

	&lt;error-page&gt;
		&lt;exception-type&gt;javax.servlet.ServletException&lt;/exception-type&gt;
    	&lt;location&gt;/error.jsp&lt;/location&gt;
    &lt;/error-page&gt;

    &lt;error-page&gt;
		&lt;error-code&gt;404&lt;/error-code&gt;
		&lt;location&gt;/404.htm&lt;/location&gt;
	&lt;/error-page&gt;
e meu error.jsp:
&lt;%@ page language=&quot;Java&quot; isErrorPage=&quot;true&quot;%&gt;


&lt;center&gt;&lt;b&gt;Um erro ocorreu!&lt;/b&gt;&lt;/center&gt;
mas quando lança uma exception ou 404, o browser me mostra o erro...
HTTP 404 - arquivo não encontrado
Internet Explorer

deveria ir para a pagina que eu defini certo?

Criado 20 de janeiro de 2004
Ultima resposta 20 de jan. de 2004
Respostas 2
Participantes 2