付録K.1 Sessionオブジェクトの取得
Sessionオブジェクトの取得方法および設定方法には,メールコンフィグレーションを使用する場合と,メールコンフィグレーションを使用しない場合があります。ここでは,それぞれのSessionオブジェクトの取得方法と設定方法を説明します。
(1) メールコンフィグレーションを使用する場合
ここでは,メールコンフィグレーションを使用する場合のSessionオブジェクトの取得方法と設定方法を説明します。
(a) メールコンフィグレーションの設定
メールコンフィグレーションを取得する前に,メールコンフィグレーションの設定とリソースのリンク解決をします。メールコンフィグレーションの設定については,マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「6.3 メールコンフィグレーションの設定」を参照してください。リソースのリンク解決については,マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「9.3.2 メールコンフィグレーションのリファレンス定義」を参照してください。
メールコンフィグレーションの設定例を示します。属性ファイルを次のように作成します。
<?xml version="1.0" encoding="MS932"?> <!DOCTYPE hitachi-mail-property PUBLIC '-//Hitachi, Ltd.//DTD Mail Property 7.0//EN' 'http://localhost/hitachi-mail-property_7_0.dtd'> <hitachi-mail-property> <description>メール属性ファイルの例</description> <display-name>TheMailSession</display-name> <from>from_address@example.com</from> <server>MyMailServer</server> <runtime/> </hitachi-mail-property>
次に,リソースの属性設定コマンドを使って,属性ファイルをリソースとして登録します。コマンドの指定例を示します。
cjsetresprop -type mail -resname TheMailSession -c mail.xml
(b) メールコンフィグレーションの取得
メールコンフィグレーションは,アノテーションまたはJNDIを使用して取得します。それぞれの取得方法を説明します。
-
アノテーションを使用したメールコンフィグレーションの取得
アノテーションを使用する場合は,次のような記述をしてメールコンフィグレーションを取得します。
// フィールド変数 // アノテーションによるリソースの設定 @Resource(mappedName="TheMailSession") Session session;
-
JNDIを使用したメールコンフィグレーションの取得
アノテーションを使用しない場合は,リソースのリンク解決をして,JNDIを使用してメールコンフィグレーションを取得します。
Session session = null; try { javax.naming.InitialContext initial = new javax.naming.InitialContext(); session = (Session) initial.lookup("java:comp/env/TheMailSession"); } catch (javax.naming.NamingException e) { // リソースが見つからなかった等 }
(2) メールコンフィグレーションを使用しない場合
メールコンフィグレーションを使用しない場合は,Sessionクラスのファクトリメソッドを使用して,Sessionオブジェクトを取得できます。この場合,メールコンフィグレーションで設定する項目は取得できないので,プログラム内で設定する必要があります。
java.util.Properties prop = new java.util.Properties(); // mail.hostプロパティを設定。 // 他、mail.transport.protocol、mail.user、mail.from等必要なプロパティを設定。 prop.setProperty("mail.host", "smtp.example.com"); Session session = Session.getInstance(prop);