java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
我正在使用 google 应用程序引擎和 intelliJ IDEA 中的 maven 开发一个网络应用程序。
到目前为止一直很好,直到我尝试使用 javax.mail
发送电子邮件并且我收到此错误:
java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
我已经在 pom.xml
中添加了所需的依赖项 (javax.activation
& javax.mail
),但仍然出现此错误。
在本地修复它的一种方法是在 vm 选项中添加“--add-modules java.activation”,当我 运行 它在本地工作正常并发送电子邮件时,但是当我'正在部署该应用程序,但它无法正常工作。
我的问题是,
有什么方法可以将 vm 参数传递给 maven 或其他任何地方,这样当我部署应用程序时它将 运行 没有错误。
或者有没有其他方法可以做到这一点(是否使用 javax.mail
)?
我的java版本是:openjdk 10.0.2
您可以使用 docker 个容器来做到这一点。
How to properly set the JVM options in a flexible GAE application
因为使用 Maven,您无法在 运行 时间内设置 VM 选项。通过 docker 尝试可能是关键。
只需在您的应用程序中包含 java.activation 模块。
您可以使用 older Oracle version, or the newer Eclipse version,两者基本相同。
(你应该考虑升级到 JDK 11。)
我正在使用 google 应用程序引擎和 intelliJ IDEA 中的 maven 开发一个网络应用程序。
到目前为止一直很好,直到我尝试使用 javax.mail
发送电子邮件并且我收到此错误:
java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
我已经在 pom.xml
中添加了所需的依赖项 (javax.activation
& javax.mail
),但仍然出现此错误。
在本地修复它的一种方法是在 vm 选项中添加“--add-modules java.activation”,当我 运行 它在本地工作正常并发送电子邮件时,但是当我'正在部署该应用程序,但它无法正常工作。
我的问题是, 有什么方法可以将 vm 参数传递给 maven 或其他任何地方,这样当我部署应用程序时它将 运行 没有错误。
或者有没有其他方法可以做到这一点(是否使用 javax.mail
)?
我的java版本是:openjdk 10.0.2
您可以使用 docker 个容器来做到这一点。 How to properly set the JVM options in a flexible GAE application
因为使用 Maven,您无法在 运行 时间内设置 VM 选项。通过 docker 尝试可能是关键。
只需在您的应用程序中包含 java.activation 模块。
您可以使用 older Oracle version, or the newer Eclipse version,两者基本相同。
(你应该考虑升级到 JDK 11。)