Файл WAR, развернутый в TomEE Plus, не отправляющий электронные письма: ошибка нарушения ограничений загрузчика
Я развернул приложение EJB (предоставляется как .war
файл) в TomEE Plus 7.1.0.
Он работает нормально, но было замечено, что электронные письма не отправлялись.
Я исследовал файл журнала на logs/tomee-stderr.[date].log
и нашел это:
java.lang.LinkageError: нарушение ограничения загрузчика: загрузчик (экземпляр 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
от TomEElib
папку, но TomEE не запускается.
1 ответ
Кажется, что есть еще файл JAR, который содержит класс javax.mail.Session? Извлеките все WEB-INF/lib в папку и найдите содержимое всех файлов jar, если в нем содержится строка "javax/mail/Session"