java.lang.ClassNotFoundException: javax.mail.Message
java.lang.ClassNotFoundException: javax.mail.Message
我正在尝试在 spark 环境中使用 Javax 发送电子邮件。当我尝试在 IntelliJ 中构建此代码时,它构建正常,没有任何问题。
但是当我将此代码带到服务器并尝试 运行 它时,我收到以下错误
java.lang.ClassNotFoundException: javax.mail.Message
Scala 代码片段
val message = new MimeMessage(session)
message.setFrom("abc@xyz.com")
//message.addRecipients(Message.RecipientType.TO, to_address)
message.addRecipients(javax.mail.Message.RecipientType.TO, "abc@xyz.com")
我试过保持 javax.mail-1.5.6.jar 以及 commons-email-1.5.jar 在我的 class 服务器路径中,但仍然出现此错误。
Spark 命令
spark-submit --master yarn --conf spark.driver.maxResultSize=0 --conf spark.driver.extraClassPath=/home/abc/commons-email-1.5.jar,/home/abc/activation-1.1.1.jar --conf spark.executor.extraClassPath=/home/abc/commons-email-1.5.jar,/home/abc/activation-1.1.1.jar --jars /home/abc/commons-email-1.5.jar --jars /home/abc/activation-1.1.1.jar --class com.abc.common.utils.UtilityMailer ./abc-xyz.jar
spark-submit --master yarn --conf spark.driver.maxResultSize=0 --conf spark.driver.extraClassPath=/home/abc/javax.mail-1.5.6.jar,/home/abc/activation-1.1.1.jar --conf spark.executor.extraClassPath=/home/abc/javax.mail-1.5.6.jar,/home/abc/activation-1.1.1.jar --jars /home/abc/javax.mail-1.5.6.jar --jars /home/abc/activation-1.1.1.jar --class com.abc.common.utils.UtilityMailer ./abc-xyz.jar
请帮忙!!!
我来猜一猜……您遇到包名冲突是因为:
- 您正在 Java EE 环境中开发,并且
- 您正在部署到 Jakarta EE 环境。
Java EE 使用 javax.*
包命名。在 Oracle Corp 将 Java EE 的责任移交给 Eclipse Foundation 之后,他们将包命名更改为 jakarta.*
.
您可以在行业新闻、视频讲座和会议演示文稿的许多 处阅读更多关于雅加达转型的信息。
要解决您的问题,可以:
- 将您的部署环境降级到 Java EE,或
- 将您的开发环境升级到 Jakarta EE。这包括将您的
import
语句从 javax
更改为 jakarta
。
两个选项都有效。大多数供应商将支持他们的 Java EE 时代产品多年。但未来的改进和创新将主要发生在新一代 Jakarta EE 产品发布中。所以你最终会想要迁移到 Jakarta EE。但这样做并不紧急。
我正在尝试在 spark 环境中使用 Javax 发送电子邮件。当我尝试在 IntelliJ 中构建此代码时,它构建正常,没有任何问题。
但是当我将此代码带到服务器并尝试 运行 它时,我收到以下错误
java.lang.ClassNotFoundException: javax.mail.Message
Scala 代码片段
val message = new MimeMessage(session)
message.setFrom("abc@xyz.com")
//message.addRecipients(Message.RecipientType.TO, to_address)
message.addRecipients(javax.mail.Message.RecipientType.TO, "abc@xyz.com")
我试过保持 javax.mail-1.5.6.jar 以及 commons-email-1.5.jar 在我的 class 服务器路径中,但仍然出现此错误。
Spark 命令
spark-submit --master yarn --conf spark.driver.maxResultSize=0 --conf spark.driver.extraClassPath=/home/abc/commons-email-1.5.jar,/home/abc/activation-1.1.1.jar --conf spark.executor.extraClassPath=/home/abc/commons-email-1.5.jar,/home/abc/activation-1.1.1.jar --jars /home/abc/commons-email-1.5.jar --jars /home/abc/activation-1.1.1.jar --class com.abc.common.utils.UtilityMailer ./abc-xyz.jar
spark-submit --master yarn --conf spark.driver.maxResultSize=0 --conf spark.driver.extraClassPath=/home/abc/javax.mail-1.5.6.jar,/home/abc/activation-1.1.1.jar --conf spark.executor.extraClassPath=/home/abc/javax.mail-1.5.6.jar,/home/abc/activation-1.1.1.jar --jars /home/abc/javax.mail-1.5.6.jar --jars /home/abc/activation-1.1.1.jar --class com.abc.common.utils.UtilityMailer ./abc-xyz.jar
请帮忙!!!
我来猜一猜……您遇到包名冲突是因为:
- 您正在 Java EE 环境中开发,并且
- 您正在部署到 Jakarta EE 环境。
Java EE 使用 javax.*
包命名。在 Oracle Corp 将 Java EE 的责任移交给 Eclipse Foundation 之后,他们将包命名更改为 jakarta.*
.
您可以在行业新闻、视频讲座和会议演示文稿的许多 处阅读更多关于雅加达转型的信息。
要解决您的问题,可以:
- 将您的部署环境降级到 Java EE,或
- 将您的开发环境升级到 Jakarta EE。这包括将您的
import
语句从javax
更改为jakarta
。
两个选项都有效。大多数供应商将支持他们的 Java EE 时代产品多年。但未来的改进和创新将主要发生在新一代 Jakarta EE 产品发布中。所以你最终会想要迁移到 Jakarta EE。但这样做并不紧急。