Mein aktuelles Projekt beinhaltet die Verwendung einer JavaMail zur Bestätigung einer Benutzer-E-Mail. Das Problem, das ich habe ist, dass, Eclipse, jedes Mal, wenn ich baue & meine Web-Anwendung auf dem lokalen Server bereitstellen Glassfish die Java Mail mit folgenden Ausnahme abstürzt:JavaMail stürzt nach Build/deploy auf Glassfish ab 4
Severe: java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:333)
at utils.MailService.sendEmailSSL(MailService.java:58)
Und hier den Code snipped, wo ich bin die Sitzung zu erhalten und welche die oben genannte Ausnahme werfen:
Session session = Session.getDefaultInstance(
props,
new javax.mail.Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(usr, pwd);
}
});
die Abhilfe, die ich bisher gefunden habe ist Glassfish Neustart und nach, dass Java Mail-Funktionen wieder richtig. Das Problem ist, dass es sehr nervig und zeitraubend ist, einen Neustart selbst nach der kleinsten Änderung meines Codes durchzuführen.
Meine Frage: Gibt es eine Möglichkeit, nur den JavaMail-Dienst zurücksetzen und binden Sie dies mit dem Build-Ereignis?
Off natürlich auch alle anderen Vorschläge sind willkommen zu :)
Das wird wahrscheinlich das Problem beheben. Wenn Sie auf einem Anwendungsserver ausgeführt werden, sollten Sie darüber hinaus die JavaMail-Sitzung als eine verwaltete Ressource deklarieren, die auf dem Anwendungsserver konfiguriert und in die Anwendung injiziert wird. –
@jmehrens, danke! Diese Information half. Offensichtlich war ich an diesem Punkt einer dieser Copy-Paste-Programmierer;] – Svetoslav
@BillShannon, danke für deinen Vorschlag. Es macht definitiv Sinn. Gibt es in diesem Fall etwas Besonderes? Vielleicht hast du einen Link, über den ich mehr darüber lesen kann. – Svetoslav