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