Ich habe eine einfache Feder-Anwendung erstellt, die eine E-Mail an den Benutzer sendet. das scheint perfekt mit "SimpleMailMessage" zu funktionieren (die ganze Nachricht wird als einfacher Text angezeigt). Was ich will, ist eine Datei als Anhang zu senden, also habe ich versucht, javax.mail.internet.MimeMessage zu verwenden, aber einige verdrahtete Fehler zu bekommen, die ich nicht aufspüren kann. Unten ist mein SnippetDatei als Anhang oder Inline senden mit Spring JavaMailSender
try {
javax.mail.internet.MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setTo(employee.getEmailId());
helper.setFrom("[email protected]");
helper.setText(mailMessage, true);
helper.setSubject(subject);
FileSystemResource res = new FileSystemResource(new File("C:/software/Koala.jpeg"));
helper.addAttachment("happyBirthday", res);
mailSender.send(message);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Der Fehler ist:
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "javax.mail.internet.MimeBodyPart.setDataHandler(Ljavax/activation/DataHandler;)V" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, org/springframework/mail/javamail/MimeMessageHelper, and the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) for resolved class, javax/mail/internet/MimeBodyPart, have different Class objects for the type n/DataHandler;)V used in the signature
at org.springframework.mail.javamail.MimeMessageHelper.addAttachment(MimeMessageHelper.java:997)
at org.springframework.mail.javamail.MimeMessageHelper.addAttachment(MimeMessageHelper.java:1077)
at org.springframework.mail.javamail.MimeMessageHelper.addAttachment(MimeMessageHelper.java:1047)
at Example1.sendEmail(Example1.java:89)
Jede Hilfe wirklich geschätzt würde.
Immer noch bekomme ich den gleichen Fehler wie oben beschrieben – user3092131
Es sieht aus wie das Problem wahrscheinlich durch zwei Versionen des Java Activation Framework verursacht wird. Versuchen Sie herauszufinden, ob das Entfernen von activation.jar aus dem Klassenpfad das Problem löst. – Sachin
Die activation.jar wurde aus dem jboss entfernt und alle spezifischen Mail-Jars entfernt, die im lib-Ordner des jboss kompiliert wurden. – user3092131