java.lang.NoClassDefFoundError:javax / activation / DataContentHandler

时间:2019-01-23 14:10:37

标签: java maven intellij-idea javamail noclassdeffounderror

我正在使用Google App引擎和intelliJ IDEA中的Maven开发一个Webapp。

到目前为止,直到我尝试使用javax.mail发送电子邮件并收到此错误为止,

java.lang.NoClassDefFoundError: javax/activation/DataContentHandler

我已经将所需的依赖项(javax.activationjavax.mail放在pom.xml中,并且仍然会发生此错误。

一种在本地修复它的方法是在vm选项中添加“ --add-modules java.activation”,当我在本地运行它时,它可以正常工作并发送电子邮件,但是当我部署该应用程序时,它不起作用

我的问题是, 有什么方法可以将vm参数传递给maven或其他任何地方,因此在我部署应用程序时它将在没有错误的情况下运行。

或者还有其他方法(是否使用javax.mail)?

我的Java版本是:openjdk 10.0.2

2 个答案:

答案 0 :(得分:0)

您可以使用docker容器做到这一点。 How to properly set the JVM options in a flexible GAE application

由于使用Maven,您无法设置运行时的VM选项。通过docker尝试可能是关键。

答案 1 :(得分:0)

只需在您的应用程序中包含java.activation模块。

您可以使用older Oracle versionnewer Eclipse version,它们基本上是相同的。

(并且您应该考虑升级到JDK 11。)