現在のプロジェクトでは、ユーザーメールの確認にJavaMailを使用しています。Glassfish 4のビルド/デプロイ後にJavaMailがクラッシュする
Severe: java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:333)
at utils.MailService.sendEmailSSL(MailService.java:58)
そして、ここで私はどこ切り取らコード:私が持っている問題は、Eclipseを使用して、すべての時間が私は&は、JavaMailのは、次の例外でクラッシュローカルGlassfishのサーバ上で私のWebアプリケーションを展開構築、ということですセッションを取得し、上記の例外がスローされた:
Session session = Session.getDefaultInstance(
props,
new javax.mail.Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(usr, pwd);
}
});
私はGlassfishのを再起動し、適切に再びそのJavaMailの機能を後にされ、これまでに発見した回避策を。問題は、コードの変更が最小限であっても、再起動するのは非常に面倒で時間がかかることです。
私の質問:JavaMailサービスのみをリセットし、これをビルドイベントでバインドする可能性はありますか?あなたがSession.getDefaultInstanceの使用を避けることができる場合
はコースオフ他の提案はあまりにも:)
これで問題が解決する可能性があります。また、アプリケーションサーバーで実行する場合は、JavaMailセッションをアプリケーションサーバーで構成され、アプリケーションに注入される管理対象リソースとして宣言することを検討する必要があります。 –
@jmehrens、ありがとうございます!その情報は助けになりました。明らかに私はそれらのコピーペーストプログラマーのうちの1人でした;] – Svetoslav
@BillShannon、あなたの提案に感謝します。それは間違いなく理にかなっています。その場合に考慮すべき事項はありますか?たぶんあなたは私がそれについてもっと読むことができるいくつかのリンクを持っています。 – Svetoslav