Я развернул приложение 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 не запускается.