Email versenden, muss Methode static sein?

Bitte aktiviere JavaScript!
Hallo,

ich habe bis vor kurzem immer eine Methode zum Emailversand gehabt, die so etwa aussah:

Java:
public static boolean setupEmailSetting(EmailSetting emailSetting, String[] to, String[] cc, String[] bcc,

            String subject, String text, String mimeType, List<EmailAttachment> attachments) {


...


    EmailHelperServiceClass emailService = new EmailHelperServiceClass(configuration);

        EmailHelperClass email = new EmailHelperClass();

        email.setFrom(emailSetting.getSendAddress());

        email.setTo(to);

        email.setCc(cc);

        email.setBcc(bcc);


        email.setSubject(subject);


        if (text == null)

            text = "";


        email.setText(text);

        email.setMimeType(mimeType);


        // Attachments

        if (attachments != null)

            for (EmailAttachment attachment : attachments) {

                email.addAttachment(attachment);

            }


        if (emailService.sendEmail(email) == true)
 // Hier passiert das eigentliche senden (Transport etc.)
return true;

        return false;

}
Aufrufen tue ich das derzeit so:
EmailHelperServiceClass.setupEmailSetting(emailSetting,
emailHelperService.generateEmailReceiverFromAddressList(emailSchedule.getEmailTo()),
emailHelperService.generateEmailReceiverFromAddressList(emailSchedule.getEmailCc()),
emailHelperService.generateEmailReceiverFromAddressList(emailSchedule.getEmailBcc()),
emailSchedule.getEmailSubject(), emailSchedule.getEmailText(), "text/html", null);


Das funktioniert auch, aber nun benötige ich innerhalb dieser Klasse eine Referenz zu einem EJB.
Eclipse gibt mir einen Fehler, da das EJB ebenfalls static sein soll. Allerdings erhalte ich dann beim Aufruf eine NPE von diesem EJB

1) Warum muss diese Methode überhaupt static sein?
2) Kann ich diese Methode nicht auf über ein Interface ansteuern, wie ich es bei allen anderen EJB mache?


Danke
 
Zumindest habe ich den Teil zitiert, den ich zitieren wollte :)

Wenn ich lese, dass jemand in einer HelperClass statische Methoden hat und meint, er bräuchte in dieser Klasse eine Referenz auf eine EJB, dann ist mir das äußerst suspekt.

Aber Du hast schon Recht: "nö" war der falsche Kommentar - "wozu?" wäre besser gewesen.
 
Ich würde mal behaupten, dass das gar keine helper-Klasse im üblichen Sinne sein soll o_O
Ich würde in 95% von dem was man da sieht, aber auch eine ganz normale (DDD-) Entity sehen, jetzt wo ich den Code genauer lese :D

Aber EmailHelperServiceClass ist schon ein wunderschöner Name...
 
Ich habe nun:
1x Interface
1x EJB Klasse

geschrieben, so wie ich es auch bei allen anderen mache...
Das Interface beinhaltet dann eine Methode: sendeEmail()

So sollte es doch passen?
 
Kommt darauf an was dann in der Klasse drin steht. Das Interface ist eigtl nicht nicht nötig, ausser es gibt mehrere Implementierungen
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben