Файл WAR, развернутый в TomEE Plus, не отправляющий электронные письма: ошибка нарушения ограничений загрузчика - PullRequest
0 голосов
/ 19 февраля 2019

Я развернул приложение EJB (предоставляется в виде файла .war) на TomEE Plus 7.1.0.

Оно работает нормально, но было замечено, что электронные письма не отправлялись.

Я исследовал файл журнала на logs/tomee-stderr.[date].log и обнаружил следующее:

java.lang.LinkageError: нарушение ограничения загрузчика: loader (экземпляр java / net / URLClassLoader) ранее инициировал загрузку для другого типас именем "javax / mail / Session"

, за которым следует очень, очень длинный (> 500 тыс. строк) трассировка стека.

Я нашел связанный вопрос ( java.lang.LinkageError: нарушение ограничения загрузчика: ранее инициированная загрузка для другого типа с именем "javax / mail / Session" ) и сказанорешение состоит в том, чтобы пометить зависимость к javamail как «предоставленную» зависимость, но я понимаю, что это должно быть сделано в файле проекта Maven, к которому у меня нет доступа.

Я могу редактировать содержимое каталога ROOTпо желанию (и я попытался удалить два файла, а именно mail.jar и mail-1.4.4.jar, из каталога WEB-INF/lib, но безрезультатно);Я верю, что могу также отредактировать файл .war с помощью 7-zip;и, наконец, я могу изменить любую конфигурацию на сервере.Но я не могу редактировать исходный код приложения и / или перекомпилировать его.

(В качестве потенциально важной информации у меня есть доступ на чтение к исходному коду, и, похоже, он не использует Maven- наличие файла .project предполагает, что это проект Eclipse.)

Файл с именем geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar является частью TomEE и находится в папке lib.

Учитываямои ограничения (нет maven, нет компиляции - должен работать существующий файл WAR), как можно решить эту ошибку?

[Редактировать 1]

  • Я удалил оба mail.jar и mail-1.4.4.jar из файла WAR (с 7-zip) и повторно развернут, сбросил файл журнала, но ошибка остается прежней.

  • Я попытался удалить geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar изПапка TomEE lib, но TomEE не запускается.

1 Ответ

0 голосов
/ 20 февраля 2019

Кажется, что есть еще файл jar, который содержит класс javax.mail.Session?Извлеките все WEB-INF / lib в папку и найдите содержимое всех файлов jar, если в нем содержится строка «javax / mail / Session»

...