Я разрабатываю веб-приложение с использованием движка приложений Google и maven в intelliJ IDEA.

Пока все хорошо, пока я не попытался отправить электронное письмо с помощью javax.mail и не получил эту ошибку:

java.lang.NoClassDefFoundError: javax/activation/DataContentHandler

Я уже поместил необходимые зависимости (javax.activation и javax.mail) в pom.xml, но эта ошибка все равно возникает.

Один из способов исправить это локально - добавить "--add-modules java.activation" в параметры vm, и когда я запускаю его локально, он работает нормально и отправляет электронное письмо, но когда я развертываю приложение, оно не работает.

И мой вопрос: есть ли способ передать аргумент vm в maven или где-нибудь еще, чтобы он работал без ошибок, когда я разверну приложение.

Или есть другой способ сделать это (с javax.mail или нет)?

Моя версия Java: openjdk 10.0.2

0
timos222 23 Янв 2019 в 17:10

2 ответа

Лучший ответ

Просто включите модуль java.activation в свое приложение.

Вы можете использовать либо более старую версию Oracle или более новой версии Eclipse, что по сути то же самое.

(И вам следует подумать об обновлении до JDK 11.)

0
Bill Shannon 24 Янв 2019 в 00:48

Вы можете сделать это с помощью контейнеров-докеров. Как правильно установить параметры JVM в гибкое приложение GAE

Причина с maven вы не можете установить параметры виртуальной машины для времени выполнения. Ключевым моментом может быть попытка через докер.

0
ygbgames 23 Янв 2019 в 14:33