Problemas com Struts?

2 respostas
D

Olá pessoAll

estou fazendo um projeto no meu curso de java que estou terminando neste mês. Mas encontrei um problema sério no meu projeto que não consigo resolver e nem meu professor

é o seguinte:

tenho um projeto TO, DAO e um BO, ambos foram exportados para jars e colocados dentro do meu projeto web. o metodo para envio de e-mail esta dentro do BO, e no projeto web onde utilizo o struts, tenho uma action, que é responsável por precessar o lembrete de senha do usuario.

Tanto chamando o metodo para envio de e-mail dentro do BO quanto colocando o código direto na action ou até mesmo criando um metodo statico o sistema não funciona ,mas tbm não gera erro nenhum…

Estou achando que tem algum tipo de incompatibilidade do struts com o javamail.

Alguem já passou por isso? Alquem pode me ajudar?

vou colocar os códigos deste trecho do projeto

Metodo que envia o e-mail (Quando coloco esse metodo em outro projeto e chamo dentro de uma Main, funciona perfeitamente)

public static boolean lembreteSenha(String emailDest, String nomeDest,
            String emailRemet, String nomeRemet, String assunto, String corpo)
            throws Exception {
        Properties props = System.getProperties();
        props.put("mail.smtp.host", "*** endereço smtp válido ***");
        props.put("mail.smtp.auth", "true");
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("*** Enderço de e-mail válido ***",
                        "*** Senha do e-mail ***");
            }
        };

        Session session = Session.getInstance(props, auth);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(emailRemet, nomeRemet));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(
                emailDest, nomeDest));
        message.setSubject(assunto);
        message.setContent(corpo, "text/plain");

        Transport.send(message);
        return true;
    }

Action do Struts

nota: já que o debug não está funcionando e não aparece o erro estou usando prints dentro do código para entender o que acontece

public class EsqueciSenhaAction implements ServletContextAware, SessionAware {
    private UsuarioTO lembrarSenha = new UsuarioTO();
    private AbstractDaoFactory daoFactory;
    private Map<String, Object> session;
    private String message;

    @Action(value = "lembrarSenha", results = {
            @Result(name = "success", location = "/lembrar-senha-OK.jsp"),
            @Result(name = "naoEcontrado", location = "/lembrar-senha.jsp"),
            @Result(name = "error", location = "/erros/error.jsp") })
    public String execute() {
        String returnString = "success";
        try {
            IUsuarioDAO usuarioDAO = daoFactory.getUsuarioDAO();
            lembrarSenha = usuarioDAO.buscaUsuarioCPF(lembrarSenha
                    .getUsuarioCPF());
            System.out.println(lembrarSenha.getUsuarioEMail()); // aqui ele imprime o console o e-mail do registro encontrado na busca
            if (lembrarSenha.getUsuarioId() == null) {
                System.out.println("se nao encontrado");
                returnString = "naoEcontrado";
                message = "CPF inválido!";
                session.put("message", message);
            } else {
                System.out.println("else encontrado"); // para saber que entrou dentro do if e que o próximo passo é enviar o e-mail, mas quando rodo o programa é a última coisa que ele imprime
                boolean a; // um atributo para verificar se deu certo
                a = Util.lembreteSenha(lembrarSenha.getUsuarioEMail(), lembrarSenha.getUsuarioNome(), "[email removido]", "Sistema Financeiro", "Lembrete de Senha", "teste");   
               
                System.out.println(a);
                System.out.println("terminado envio e-mail");
               
                session.put("lembrarUsuarioOK", lembrarSenha);
                message = " ";
                session.put("message", message);
            }
        } catch (Exception e) {
            e.printStackTrace();
            returnString = "error";
        }
        return returnString;
    }

não sei mais o que fazer…


Daniel Gonçalves
19 8207.1158
19 3384.5287
www.dgnaweb.com
skype: dgnaweb

2 Respostas

D

Pessoal, segue o erro que está gerando no meu problema

HTTP Status 500 -

type Exception report

message

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

exception

java.lang.reflect.InvocationTargetException

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)

com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)

com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)

com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)

org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)

org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)

org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

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

Paulo_Silveira

Oi Daniel

Ainda falta a causa dessa exception (root cause). procure ela nos logs do tomcat (no catalina.out ou na saida do console) e posta pra gente

Criado 7 de julho de 2010
Ultima resposta 8 de jul. de 2010
Respostas 2
Participantes 2