我正在使用Google App引擎和intelliJ IDEA中的Maven开发一个Webapp。
到目前为止,直到我尝试使用javax.mail
发送电子邮件并收到此错误为止,
java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
我已经将所需的依赖项(javax.activation
和javax.mail
放在pom.xml
中,并且仍然会发生此错误。
一种在本地修复它的方法是在vm选项中添加“ --add-modules java.activation”,当我在本地运行它时,它可以正常工作并发送电子邮件,但是当我部署该应用程序时,它不起作用
我的问题是, 有什么方法可以将vm参数传递给maven或其他任何地方,因此在我部署应用程序时它将在没有错误的情况下运行。
或者还有其他方法(是否使用javax.mail
)?
我的Java版本是:openjdk 10.0.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 version或newer Eclipse version,它们基本上是相同的。
(并且您应该考虑升级到JDK 11。)