Я ударил головой по этому вопросу, и я устал от хлюпающего звука.Весна JavaMailSender, Tomcat, JNDI
Мне нужно настроить экземпляр JavaMail на платформе Tomcat. Конечно, я не хочу жестко кодировать параметры подключения в военном файле, поэтому я пытался установить конфигурацию JNDI. Тем не менее, я получаю исключение, предполагающее, что существует проблема с classpath (вызвано: java.lang.NoClassDefFoundError: javax/mail/Authenticator). Вот мой код:
<Resource name="mail/Session"
auth="Container"
type="javax.mail.Session"
username="[email protected]"
password="Camp1onelcap"
mail.debug="true"
mail.user="[email protected]"
mail.password="Camp1onelcap"
mail.transport.protocol="smtp"
mail.smtp.host="smtp.gmail.com"
mail.smtp.auth="false"
mail.smtp.port="465"
mail.smtp.starttls.enable="false"/>
Session mailSession = null;
try {
mailSession = InitialContext.doLookup("java:comp/env/mail/Session");
Я не уверен, что делать. Я прочитал несколько комментариев, чтобы скопировать mail.jar и activation.jar в [TOMCAT_HOME]/lib, но это кажется ... неудобным. Кроме того, я не уверен, как это сделать в среде разработки (Eclipse). Может ли кто-нибудь указать мне в правильном направлении? Я действительно застрял здесь; это не похоже на трудную вещь, но я ясно доказываю это неправильно.
Это файл войны. Это зависимость от maven, которая разрешена в пути класса Eclipse. –
Вы уверены, что зависимость maven на самом деле приводит к тому, что она помещается в военный файл, а не просто используется во время компиляции? Вы зависите от Maven или Eclipse для развертывания военного файла? Если вы извлекаете военный файл и разворачиваете его вручную, это работает? –