Erro ao rodar aplicativo para envio de email

6 respostas
L

Oi pessoal,
sou nova aki no fórum e também no java. Mas estou tendo que aprender no meu estágio. Bom, estou rodando um programa para envio de e-mails. Ele é composto por um arquivo html (que funciona), um jsp e um .java, que compilou legal. Mas na hora que chama o jsp aparece o seguinte erro:
HTTP Status 500 -


type Exception report

message

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

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 17 in the jsp file: /enviaremail.jsp

Generated servlet error:
[javac] Compiling 1 source file

C:jakarta-tomcat-4.1.30workStandalonelocalhostTestesJavaenviaremail_jsp.java:74: cannot resolve symbol
symbol : class AddressException
location: class org.apache.jsp.enviaremail_jsp
catch (AddressException e) {
^

An error occurred at line: 20 in the jsp file: /enviaremail.jsp

Generated servlet error:
C:jakarta-tomcat-4.1.30workStandalonelocalhostTestesJavaenviaremail_jsp.java:79: cannot resolve symbol
symbol : class MessagingException
location: class org.apache.jsp.enviaremail_jsp
catch (MessagingException e) {
^
2 errors

at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130)

at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293)

at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:353)

at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)

at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:534)

Será que alguém pode me ajudar a resolver o problema?
Muito Obrigada,
Letícia

6 Respostas

R

[color=“darkblue”]Olá!
Vc conferiu se colocou try e catch??
O catch não funciona sem o try…
QQ coisa é melhor postar o código e o erro pra gente ver melhor :wink: [/color]

L

Eu coloquei sim. Os códigos são os seguintes:
enviaremail.jsp:

<html>
<body>

<%@ page import=“jspbrasil.Email” %>
<jsp:useBean id=“email” scope=“session”

class=jspbrasil.Email/>

<%

try {

String mailServer = mail.seumailserver.com.br;

String assunto = request.getParameter(assunto);

String para = request.getParameter(para);

String de = request.getParameter(de);

String mensagem =request.getParameter(mensagem);

email.sendSimpleMail(mailServer, assunto, para, de,
mensagem);

%>

<p>Email enviado com Sucesso !!!</p>

<%

}

catch (AddressException e) { %>

<p>Endereço de Email inválido</p>

<%}

catch (MessagingException e) { %>

<p>Impossível enviar o email.</p>

<%}%>

</body>
</html>

Email.java:

package jspbrasil;

import javax.mail.<em>;

import javax.mail.internet.</em>;

import java.util.*;
public class Email {

public void sendSimpleMail (String mailServer, String subject,

String to,String from, String mensagem)

throws AddressException, MessagingException

{

Properties mailProps = new Properties();
//definição do mailserver

mailProps.put(“mail.smtp.host”, mailServer);

Session mailSession = Session.getDefaultInstance(mailProps, null);

//As duas linhas seguintes de código, colocam no formato de endereços,

//supostamente válidos, de email os dados passados pelos parâmetros to e from.

InternetAddress destinatario = new InternetAddress (to);

InternetAddress remetente = new InternetAddress (from);

//As duas linhas de código a seguir, são responsáveis por setar os atributos e
//propriedas necessárias do objeto message para que o email seja enviado.
//inicialização do objeto Message
Message message = new MimeMessage (mailSession);

//Definição de quem está enviando o email
message.setFrom(remetente);

//define o(s) destinatário(s) e qual o tipo do destinatário.
//os possíveis tipos de destinatário: TO, CC, BCC

message.setRecipient( Message.RecipientType.TO, destinatario );
//definição do assunto do email

message.setSubject (subject);
//definição do conteúdo da mesnagem e do tipo da mensagem

message.setContent (mensagem.toString(), “text/plain”);
//a linha de código seguinte é a responsável pelo envio do email

Transport.send (message);
}

}

Obrigada pela atenção! :slight_smile:

R

[color=“darkblue”]Vc já conferiu se está chamadno a classe do lugar certo??
Se não for isso te aconselho à não usar as tags <%%> para impressão no browser, tive um certo problema com elas… use a função “out.write()”, ela é bem melhor ;)…
Aparentemente eu não vejo erro, mas não leve muito à sério, pois só agora estou caíndo em JSP :)…
Faça essas alterações que te falei para ver se altera algo…

[]'s[/color]

L
Continua dando o erro. Mas é o seguinte: eu vi agora que saiu errado o apontador aí (^) é assim que tá dando:

catch (AddressException e) {

^

e

catch (MessagingException e) {

^

O problema não é no catch.

Valeu!

L

Ai, ta saindo errado toda hora!! O erro apontado é no AddressException e no MessagingException que estão dentro dos parenteses.

R

OLá!!!
Eu dei mais uma lida no seu código…
Vc está usando alguma classe de envio de email??
Já reparou se a classe que vc está usando é realmente estendida de email??
Se não tiver nenhum desses parametros ele não consegue achar algo para capturar saída de erro de email…
Esse tipo de erro acontece qnd vc não declara classe, tem uma linha de erro dizendo isso:

Generated servlet error&#58; C&#58;jakarta-tomcat-4.1.30workStandalonelocalhostTestesJavaenviaremail_jsp.java&#58;79&#58; cannot resolve symbol symbol &#58; class MessagingException location&#58; class org.apache.jsp.enviaremail_jsp

Confira as classes de sua aplicação para confirmar que elas estão certas… e se vc está usando as excessões certas… :wink:

Criado 5 de agosto de 2004
Ultima resposta 6 de ago. de 2004
Respostas 6
Participantes 2