Hitachi

Cosminexus V11 アプリケーションサーバ アプリケーション開発ガイド


付録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);