私は現在、電子メールを送信するJava webappを開発しています。Tomcat 7 にデプロイしているのでmail/Session
、ファイルにリソースを構成し、 Tomcat の lib フォルダーにcontext.xml
最新バージョンをコピーしました。mail.jar
Web アプリをデプロイして実行すると、次の例外が発生します。
java.lang.ClassCastException: javax.mail.Session cannot be cast to javax.mail.Session
これは、クラスでメールを送信するために使用しているコードです。
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Session session = (Session) envCtx.lookup("mail/Session");
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
InternetAddress toIA[] = new InternetAddress[1];
toIA[0] = new InternetAddress(to);
message.setRecipients(Message.RecipientType.TO, toIA);
message.setSubject(subject);
message.setContent(mensagem, "text/plain");
Transport.send(message);
mail.jar
Tomcat lib フォルダーと Web アプリ lib フォルダーの両方にあるため、これがおそらくスローされていることを理解しています。問題は、Maven から依存関係を単純に削除できないpom.xml
ことです。特定のクラス ( などSession
) が見つかりません。
Web アプリケーションに対応する JAR がない場合、電子メールの送信を担当するクラスを使用するにはどうすればよいですか?