Cosminexus アプリケーションサーバ V8 Webサービス開発の手引

[目次][用語][索引][前へ][次へ]

18.5.1 添付ファイルのインスタンスを生成する方法(wsi:swaRef形式)

添付ファイルのオブジェクトとして,javax.activation.DataHandlerオブジェクトを生成します。javax.activation.DataHandlerクラスのコンストラクタを次の表に示します。

表18-10 javax.activation.DataHandlerクラスのコンストラクタ

項番 利用ケース コンストラクタ 引数の説明
1 ファイルを添付する DataHandler(javax.activation.DataSource ds) [第1引数]
javax.activation.DataSourceオブジェクトです。
javax.activation.FileDataSourceクラスのオブジェクトを指定できます。
2 メモリ上のオブジェクトを添付する DataHandler(java.lang.Object obj, java.lang.String mimeType) [第1引数]
Javaオブジェクトです。
[第2引数]
オブジェクトのMIMEタイプです。
指定できるMIMEタイプについては,「18.4.2(3) 添付ファイルの拡張子とMIMEタイプのマッピング」を参照してください。

添付ファイルとして送信するオブジェクトによって,javax.activation.DataHandlerオブジェクトを生成する方法が異なります。送信するオブジェクトごとに,生成する方法を示します。

<この項の構成>
(1) 存在するファイルを添付ファイルとして送信する方法
(2) Javaオブジェクトを添付ファイルとして送信する方法
(3) java.lang.Stringオブジェクトを添付ファイルとして送信する方法

(1) 存在するファイルを添付ファイルとして送信する方法

すでに存在するファイルを添付して送信する場合の手順を示します。

  1. javax.activation.FileDataSourceオブジェクトを生成します。
    送信する添付ファイルのファイルパスを引数に指定して,javax.activation.FileDataSourceオブジェクトを生成します。
    javax.activation.FileDataSource fdSource =
     new javax.activation.FileDataSource("/tmp/sample.jpg");
  2. javax.activation.DataHandlerオブジェクトを生成します。
    javax.activation.FileDataSourceオブジェクトを引数に指定して,javax.activation.DataHandlerオブジェクトを生成します。
    javax.activation.DataHandler dhandler =
     new javax.activation.DataHandler(fdSource);

(2) Javaオブジェクトを添付ファイルとして送信する方法

Javaオブジェクトを添付ファイルとして送信する場合の手順を示します。

  1. Javaオブジェクトを生成します。
    ここでは,添付ファイルとして送信するjava.awt.Imageオブジェクトを生成します。
    java.awt.Image attachments =
     Toolkit.getDefaultToolkit().createImage("sample.jpg");
  2. javax.activation.DataHandlerオブジェクトを生成します。
    Javaオブジェクトと,Javaオブジェクトに対応するMIMEタイプを引数に指定し,javax.activation.DataHandlerオブジェクトを生成します。
    javax.activation.DataHandler dhandler = new
     javax.activation.DataHandler(attachments, "image/jpeg");

(3) java.lang.Stringオブジェクトを添付ファイルとして送信する方法

java.lang.Stringオブジェクトを添付ファイルとして送信する場合の手順を示します。

  1. java.lang.Stringオブジェクトを生成します。
    添付ファイルとして送信する文字列のjava.lang.Stringオブジェクトを生成します。
    java.lang.String attachments = new java.lang.String("あいうえお");
  2. javax.activation.DataHandlerオブジェクトを生成します。
    java.lang.StringオブジェクトとMIMEタイプを引数に指定し,javax.activation.DataHandlerオブジェクトを生成します。java.lang.Stringオブジェクトは,charsetパラメタに指定された文字コードでエンコードされます。
    javax.activation.DataHandler dhandler = new javax.activation.DataHandler(attachments, "text/plain; charset=UTF-8");
    javax.activation.DataHandler(Object, String)コンストラクタの第2引数の記述形式を示します。
    MIMEタイプ+";"+"charset"+"="+文字コード

注意事項
  • javax.activation.DataHandler(Object, String)コンストラクタの第1引数に,日本語を含むjava.lang.Stringオブジェクトを指定する場合は,第2引数にそのMIMEタイプとcharsetパラメタで適切な文字コードを指定する必要があります。
  • charsetパラメタを指定しない場合,添付ファイルの文字列がデフォルトの文字コード(US-ASCII)でエンコードされます。そのため,添付ファイルの文字列がUS-ASCII以外の文字を含んでいる場合,不正な添付ファイルが送信されます。添付ファイルとしてStringオブジェクトを送信する場合に指定できます。JPEGなどのバイナリデータを送信する場合は指定できません。
  • charsetパラメタでは,大文字/小文字は区別されません。また,JDKがサポートしていない文字コードおよび空文字は指定できません。