wip
This commit is contained in:
2026-05-07 23:18:31 +02:00
parent 6c493feafc
commit 845e3ad05e
10 changed files with 288 additions and 11 deletions
@@ -0,0 +1,38 @@
package org.example.demo.uebung3.aufgabe13;
import jakarta.annotation.Resource;
import jakarta.ejb.Stateless;
import jakarta.mail.MessagingException;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeMessage;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
@Stateless
public class Mailsender implements MailsenderLocal {
private static final Logger LOG = Logger.getLogger(Mailsender.class.getName());
@Resource(mappedName="java:/jboss/mail/uebung3")
private Session mailSession;
public Mailsender() {
}
public void sendMail(String recipient, String subject, String text) {
try {
jakarta.mail.Message message = new MimeMessage(mailSession);
message.setSentDate(new Date());
message.addRecipient(jakarta.mail.Message.RecipientType.TO, new InternetAddress(recipient));
message.setSubject(subject);
message.setText(text);
Transport.send(message);
}
catch (MessagingException e) {
LOG.log(Level.SEVERE, "Fehler beim Senden der E-Mail an " + recipient, e);
}
}
}
@@ -0,0 +1,8 @@
package org.example.demo.uebung3.aufgabe13;
import jakarta.ejb.Local;
@Local
public interface MailsenderLocal {
void sendMail(String to, String subject, String text);
}
@@ -0,0 +1,52 @@
package org.example.demo.uebung3.aufgabe13;
import jakarta.ejb.ActivationConfigProperty;
import jakarta.ejb.EJB;
import jakarta.ejb.MessageDriven;
import jakarta.jms.JMSException;
import jakarta.jms.Message;
import jakarta.jms.MessageListener;
import jakarta.jms.TextMessage;
@MessageDriven(
activationConfig = {
@ActivationConfigProperty(
propertyName = "destinationType",
propertyValue = "jakarta.jms.Queue"
),
@ActivationConfigProperty(
propertyName = "destination",
propertyValue = "java:/jms/queue/MyQueue"
),
@ActivationConfigProperty(
propertyName = "acknowledgeMode",
propertyValue = "Auto-acknowledge"
)
}
)
public class ReceiveQueueMessageAndSendAsMail implements MessageListener {
@EJB
private MailsenderLocal mail;
@Override
public void onMessage(Message message) {
try {
if (message instanceof TextMessage) {
String text = ((TextMessage) message).getText();
System.out.printf("=== Empfangene Nachricht: %s ===", text);
// Konfiguration für E-Mail
String empfaenger = "linus.nagel@itc-studenten.de";
String betreff = "JMS-Nachricht empfangen";
mail.sendMail(empfaenger, betreff, text);
System.out.printf("E-Mail an %s versendet: %s", empfaenger, text);
} else {
System.out.printf("Unerwarteter Nachrichtentyp: %s", message.getClass().getName());
}
} catch (JMSException e) {
System.out.println("Fehler beim Verarbeiten der Nachricht " + e);
}
}
}