[Resolvido] Capturar erros não tratados no glassfish

Olá Pessoal !!!

Tenho um código que funciona corretamente numa aplicação desktop. Porém não funciona na minha aplicação web no glassfish. Coloquei o método configuraAndEnvia(); no início de ListnerErros(); só para testar e mandar um e-mail ao construir e envio corretamente para minha conta. O que parece é que a thread não fica ativa capturando os erros durante a minha aplicação. Chamo ListnerErros(); pela primeria vez num MB.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package util;

import java.sql.Date;
import java.util.Calendar;
import org.apache.log4j.Logger;

/**
 *
 * @author edudebom
 */
public class LogListner {

    private static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(LogListner.class);
    private static String barra = System.getProperty("file.separator");

    public static Logger getLogger() {
        return logger;
    }

    public LogListner() {
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {

                ListnerErros();
            }
        });

    }

    private static void configuraAndEnvia() {
        Calendar cal = Calendar.getInstance();

        //informaões do arquivo
        String mensagem = "Usuário logado : " + UsuarioLogado.getLogado() + "\n"
                + "Estabelecimento : " + ConfiguracaoGlobal.getConfiguracaoGlobal().getEstabelecimento().getNome_razao() + "\n"
                + "Data de Geração do Arquivo : " + dataUtil.DateToDMYHMS(new Date(cal.getTime().getTime()), "dd/MM/yyyy - hh:mm");

        //envia email com o arquivo de logs
        EnviaEmail ee = new EnviaEmail();
        ee.enviaLog(System.getProperty("user.dir") + barra + "logs" + barra + "server.log", mensagem);
    }

    public static void ListnerErros() {

        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {

            @Override
            public void uncaughtException(Thread t, Throwable ex) {
                logger.error("", ex);

                if (ConfiguracaoGlobal.getConfiguracaoGlobal().getEnviaLog()) {
                    configuraAndEnvia();
                }

            }
        });
    }
}

Mudei a estratégia e fiz de acordo com este exemplo: http://jugojava.blogspot.com/2010/09/jsf-2-exception-handling.html