gpt4 book ai didi

email - 无法从 liferay Hook 发送邮件

转载 作者:行者123 更新时间:2023-12-05 01:48:14 25 4
gpt4 key购买 nike

我正在尝试通过同时使用 MailEngine 和 MailServiceUtil 的 Hook 发送电子邮件,但我还无法发送它。我的代码如下:

InternetAddress from=null;
InternetAddress to=null;
try {
from = new InternetAddress("test@test.com", "Admin admin");
to = new InternetAddress(newUser.getEmailAddress(), newUser.getFirstName());
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MailMessage mailMessage = new MailMessage();

mailMessage.setFrom(from);
mailMessage.setTo(to);

mailMessage.setBody(body);
mailMessage.setSubject(subject);
MailServiceUtil.sendEmail(mailMessage);

在此我收到以下错误,

java.lang.LinkageError: loader constraint violation: when resolving method "com.liferay.portal.kernel.mail.MailMessage.setFrom(Ljavax/mail/internet/InternetAddress;)V" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, com/lftechnology/sbworkbench/hooks/createaccount/CustomCreateAccountAction, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, com/liferay/portal/kernel/mail/MailMessage, have different Class objects for the type javax/mail/internet/InternetAddress used in the signature

我在我的 liferay 安装中找到了一个 mail.jar 文件,但我无法使用它。我尝试使用 artifactid com.sun 在我的 pom 文件中导入 javax.mail,但仍然出现此错误。这里有人知道问题出在哪里吗?

谢谢

最佳答案

我最好的猜测是您的类路径中有多个版本的 mail.jar(或包含相同代码的各种其他化身)。你说,你在 tomcat 中找到了 mail.jar - 我猜它也包含在你的网络应用程序的 WEB-INF/lib 中:从那里删除它,你的网络应用程序必须使用 tomcat 的全局类路径中的那个。

您可以在 Maven 中将依赖项配置为“已提供”,以便 Maven 知道您将依赖该代码,但不会将其与您的应用程序一起部署

提出您的意见:不要只是“重新部署”,而是取消部署(删除 web 应用程序),否则 tomcat 可能会保留您之前提供的库。因此您不会再次复制它们,但它们仍然存在。

关于email - 无法从 liferay Hook 发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15787282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com