Невозможно скомпилировать файл JSP с API JavaMail - PullRequest
0 голосов
/ 08 июля 2011

Я изо всех сил пытаюсь найти код, который работает при отправке электронных писем с использованием JSP.

У меня есть html-форма для сбора текстового тела сообщения, а затем в коде shoudl приведена остальная информация в порядкечтобы уменьшить работу пользователя во время отправки уведомлений команде .....

Код JSP выглядит следующим образом, и я продолжаю получать сообщения об ошибках, в которых говорится, что сеанс не может быть преобразован в тип, Сообщение не может быть разрешено для типа, MimeMessage не может быть разрешено для типа и т. Д. ......

<%@ page import="java.util.*, javax.mail.*, javax.mail.internet.*" %>

<%

// SMTP Authentication settings
String host = "smtp.e-tools.com.ve";
String user = "info@e-tools.com.ve";
String pass = "password";

// E-Mail settings
String to = "shee_mass@hotmail.com";
String from = "info@e-tools.com.ve";
String subject = "E-tools Notification - New Document/Comment to see";
String mesg = request.getParameter("smsInput");

boolean sessionDebug = false;
Properties props = System.getProperties();
props.put("mail.host", host);
props.put("mail.transport.protocol", "smtp");

Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(sessionDebug);

// Create message to send
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText);

// Send message
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, user);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();

%>

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Получение не может быть разрешено до типа Ошибки компиляции JSP, в то время как импорт, по-видимому, в порядке, также может означать, что эти классы просто отсутствуют в пути к классам.Это похоже на получение NoClassDefFoundError во время выполнения в обычной Java.

На самом деле, в отличие от реальных контейнеров Java EE, таких как Glassfish, простой сервлет-контейнер, такой как Tomcat, не поставляется с JavaMail.Вы должны убедиться, что вы добавили его самостоятельно, загрузив JAR-файлы JavaMail и поместив их в /WEB-INF/lib.

* 1010 веб-приложения. Написание необработанного кода Java в файлах JSP вместо классов Java не являетсясмешно.
1 голос
/ 09 декабря 2011

Шейла, у меня была точно такая же проблема. Я использую Tomcat6. Проблема заключается в том, что Tomcat6 не нравится, когда папка mail.jar находится в папке WEB-INF / lib, и настаивает на том, чтобы она работала в глобальном масштабе. Поместите mail.jar в папку CATALINA_HOME / lib (по умолчанию / usr / share / tomcat6 / lib), удалите его из папки WEB-INF / lib, перезапустите Tomcat6, и он заработает. Вам не нужен Activation.jar, так как вы, скорее всего, тоже на Java 1.6, так что вы тоже можете от этого избавиться.

...