[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

Messages posted by: jgribeiro_mg@yahoo.com.br  XML
Profile for jgribeiro_mg@yahoo.com.br -> Messages posted by jgribeiro_mg@yahoo.com.br [4]
Author Message
OK. Esclareceu.
Obrigado,
Hel_all
Olá,

Quando eu escrevo servlets, devo me preocupar em fazê-los "thread safe". Isso implica em ter cuidado com as variaveis de classe e de instância, sincronizando alguns trechos de código, etc.

Minha pergunta é se devo ter a mesma preocupação ao escrever Actions. Actions já são "thread safe", ou devo torna-las "thread safe"? Ou essa preocupação não se justifica, por algum motivo?

[]'s,

Hel_all
Alguma coisa está acontecendo, porque estou seguindo todos os itens que o Ricardo elencou, e nada.... não aparece a mensagem. Eu não sei o que tentar para descobrir o que está acontecendo... Alguma sugestão?
Olá,

Sou novato no Mentawai, e estou tentando configurar uma página para tratamento de exceções. Segui o tutorial do forum:

1) inclui um addGlobalFilter no meu ApplicationManager:
Code:
 		addGlobalFilter(new ExceptionFilter()); 
 		addGlobalConsequence(EXCEPTION, fwd("Error.jsp")); 
 


2) criei a página Error.jsp
Code:
 <body>
 
 <h3>Mensagem de erro: </h3>
 <p>Ocorreu um erro inesperado. Informe ao Web Master a situação em que ele ocorreu, 
 e os dados abaixo.</p>
 <p>Excecção: <mtw:out value="exception"/></p>
 <p>Mensagem: <mtw:out value="message"/></p>
 <p>Pilha de execução: <mtw:out value="stacktrace"/></p>
 
 </body>
 


3) simulei um erro (um nome de arquivo errado). O nome da exceção foi mostrado, a pilha de execução também, mas o mensagem, não. A classe da exceção é mostrada abaixo:
Code:
 public class ExcecaoArquivoInvalido extends Exception {
 
 	public ExcecaoArquivoInvalido() {
 	}
 
 	public ExcecaoArquivoInvalido(String arg0) {
 		super(arg0);
 	}
 
 	public ExcecaoArquivoInvalido(Throwable arg0) {
 		super(arg0);
 	}
 
 	public ExcecaoArquivoInvalido(String arg0, Throwable arg1) {
 		super(arg0, arg1);
 	}
 
 }
 


Fiz vários testes. Se eu capturar a exceção, getMessage() retorna corretamente. Se eu criar uma variável na saida com nome "message", há duas possibilidades: se eu só capturar a exceção, gravar em message a mensagem e retornar EXCEPTION, a Error.jsp mostra a mensagem (é claro que nesse caso ela não mostra stacktrace nem o nome da exceção). Por outro lado, se eu capturo a excecao, crio a variável com a mensagem, e relanço uma nova exceção (vide o codigo abaixo), a mensagem não é mostrada em Error.jsp. Esse trecho de código pode ser o seguinte:
Code:
 		} catch (ExcecaoArquivoInvalido eai) {
 			output.setValue("message", eai.getMessage());
 			throw new ActionException(eai.getMessage(), eai); 
 		}
 


Alguém pode me ajudar a entender o que está acontecendo?

Obrigado,

José Guilherme
 
Profile for jgribeiro_mg@yahoo.com.br -> Messages posted by jgribeiro_mg@yahoo.com.br [4]
Go to:   
Powered by JForum 2.1.6 © JForum Team