TeamWARE Office 200X V2.0
XML アクセス機能説明書
はじめに
XML 形式で記述したリクエストをサーバに送信することにより、TeamWARE Office で提供された機能や資源を利用することが可能になります。本書は、XML アクセス 機能について説明します。
本書では、TeamWARE Office 200X V2.0 を、TeamWARE Office、または TeamWARE Office V2.0 と表記します。
オペレーティングシステム名を以下のように略して表記しています。 Solaris(TM)オペレーティングシステムを Solaris と略します。
Microsoft® Windows NT® Server network operating system Version 4.0 を Windows NT®と略しま す。Microsoft® Windows® 2000 Server operating system、Microsoft® Windows® 2000 Advanced Server operating system を総称して、Windows® 2000 と略します。また、Windows Server™ 2003 Standard Edition、Windows Server™ 2003 Enterprise Edition を総称して、Windows Server™ 2003 と 略します。
説明上、Windows NT®と Windows® 2000 および Windows Server™ 2003 に違いがない場合は、 Windows NT®と記載しています。
2005 年 11 月
TeamWARE は、TeamWARE Group の商標です。
Sun、Sun Microsystems、Sun ロゴ、Solaris およびすべての Solaris に関連する商標及びロゴは、米国およびそ の他の国における米国 Sun Microsystems, Inc.の商標または 登録商標であり、同社のライセンスを受けて使用 しています。
Microsoft、Windows、MS-DOS、Windows NT は、米国 Microsoft Corporation の米国およびその他の国における登 録商標です。Microsoft Corporation のガイドラインに従って画面写真を使用しています。
Netscape Navigator は、米国 Netscape Communications Corporation の商標です。
UNIX は、米国およびその他の国におけるオープン・グループの登録商標です。
Java およびすべての Java 関連の商標およびロゴは、米国およびその他の国における米国 Sun Microsystems, Inc.の商標または登録商標です。
そのほか、本書に記載されている会社名および製品名は、それぞれ各社の商標または登録商標です。
Copyright © TeamWARE Group Oy 2005 and Fujitsu Limited 2005 and/or their licensors
このマニュアルの使い方
このマニュアルの目的 このマニュアルは、TeamWARE Office の XML アクセス機能について説明しています。 このマニュアルの読者 このマニュアルは、TeamWARE Office の XML アクセス機能を使って業務システム構築を行 う人を対象としています。このマニュアルでは、XML、HTTP プロトコルに関する知識、業務 アプリケーションを開発、またそのアプリケーション実行する環境に関する知識をもっている 方を対象としています。また、TeamWARE Office の利用ノウハウを熟知し、TeamWARE Office のシステム管理者相当の知識が必要です。 このマニュアルの位置づけ このマニュアルを利用される際には、以下のマニュアルを併せてご利用ください。 TeamWARE Office 200X V2.0 管理者ガイド システム管理者が行うさまざまな業務やツールについて解説しています。 (以降、「TeamWARE Office 管理者ガイド」と略します。)Windows NT® TeamWARE Office 200X V2.0 インストールガイド
Windows NT®を利用される方を対象にしたマニュアルであり、TeamWARE Office 200X V2.0 のインストール作業について説明しています。
Solaris TeamWARE Office 200X V2.0 インストールガイド
Solaris を利用される方を対象にしたマニュアルであり、TeamWARE Office 200X V2.0 のインストール作業について説明しています。 上記 2 冊のマニュアルを総称して「TeamWARE Office インストールガイド」と略します。 TeamWARE Office 200X V2.0 利用者ガイド TeamWARE Office のアプリケーションを操作する方法について説明しています。なお、 このマニュアルは、HTML 形式で提供されています。参照するには、HTML ビューア (Web ブラウザなど)が必要です。 (以降、「TeamWARE Office 利用者ガイド」と略します)
目 次
1 章 概要 1.1 XMLアクセス機能とは 1.2 XMLアクセス機能の提供機能概要 1.3 XMLアクセス機能の動作環境 1.4 XMLアクセス機能の適用例 2章 XMLアクセス機能のセットアップ 2.1 Webサービス(拡張機能)のインストール 2.2 初期化ファイル 2.2.1 [XMLDocument]セクション 2.2.2 [Request]セクション 3 章 アプリケーションの作成 3.1 アプリケーションの要件 3.1.1 アプリケーション構築要素 3.1.2 留意事項 4 章 サンプルアプリケーション 4.1 サンプルアプリケーションの実行環境 4.1.1 Javaアプリケーションの実行環境 4.1.2 Javaサーブレットの実行環境 4.2 サンプルアプリケーション1 4.3 サンプルアプリケーション2 4.4 サンプルアプリケーション3 5 章 提供機能一覧 付録.XMLリクエスト/レスポンス仕様1章 概要
この章では、XML アクセス機能の概要と動作環境について説明します。 1.1 XML アクセス機能とは 1.2 XML アクセス機能の提供機能概要 1.3 XML アクセス機能の動作環境 1.4 XML アクセス機能の適用例1.1 XMLアクセス機能とは
XML 形式のリクエストは、TeamWARE Office Web サービス(拡張機能)によって処 理され、リクエストに対応したレスポンスを XML 形式で取得することができます。 この機能を XML アクセス機能と呼びます。 XML アクセス機能を利用することにより、TeamWARE Office で提供されている機 能や資源を XML 形式のデータとして取り出して利用できるだけでなく、XML 形 式で TeamWARE Office にメールを送信したり、個人/設備カレンダーに予約を作 成することもできます。 TeamWARE Office サーバに対するアクセスを XML 形式で行うことにより、以下を 実現できます。 特定の言語に依存しないアプリケーションの開発 アプリケーションの開発工数の削減 XMLを利用した既存の業務アプリケーションとの連携 図 1.1 XML アクセス機能の構成要素 Library サービス Forum サービス Calendar サービス Mail サービス Directory サービス Web サービス (拡張機能) XML 形式 レスポンス XML 形式 リクエスト TeamWARE Office サーバ HTTP/S protocol サーブレット /アプリケー ション (Java/C++など)
1.2 XMLアクセス機能の提供機能概要
XML アクセスには、以下の機能があります。 情報照会サービス - 利用者のプロパティ、スケジュールの照会 - グループのプロパティ、スケジュールの照会 - 設備のプロパティ、スケジュールの照会 - 資源一覧(フォーラム、ライブラリ、設備など)の照会 メッセージングサービス - メールの送受信 - 掲示版メッセージの投稿・取り出し・削除 - ディスカッションへの参加・聴講 予約サービス - 設備の予約・取り消し - 個人のスケジュール予約・取り消し ストレージサービス - 共用資料(帳票、仕様書、カタログ)の版数管理・取り出し 運用管理サービス - ログ、利用統計の取り出し、運用状態の監視 詳細については、 第5章 提供機能一覧 および 付録 XML リクエスト/ レスポンス仕様 を参照して下さい。1.3 XMLアクセス機能の動作環境
◆関連サービス
XML アクセス機能は、TeamWARE Office Web サービス(拡張機能)を経由して利用 します。そのため、XML アクセス機能を利用するすべてのサーバで、Web サービ ス(拡張機能)のセットアップを行ってください。
Web サービス(拡張機能)のセットアップの詳細については TeamWARE Office 管 理者ガイド 付録 C.4.12 Web サービスのセットアップ および TeamWARE Office インストールガイド を参照してください。 Web サービス(標準機能)では、XML アクセス機能は利用できません。 拡張機能をインストールしてください。 ◆ポート番号 Web サービス(拡張機能)で使用するポート番号は、"9945"です。ただし、Web サー ビス(拡張機能)の設定により、ポート番号は自由に変更可能です。 XML リクエストデータや呼応する XML レスポンスデータのやり取りは、このポ ート番号が使用されます。 ◆XML リクエスト/レスポンス Web サービス(拡張機能)に対して送信される処理要求(XML データ)に呼応して、 XML レスポンスデータが返却されます。この XML レスポンスデータとして返却 して欲しいデータやそのタグ形式は、XML レスポンステンプレートファイルに規 定されています。 この XML レスポンステンプレートファイルは、以下のフォルダに格納されていま す。
TeamWARE Office サーバディレクトリ/http/htdocs/htd_7010/xml 配下 TeamWARE Office サーバディレクトリ/http/htdocs/htd_7010/xml 配下
尚、TeamWARE Office 200X V1.0 または V2.0L10 から移行した環境では、XML レ スポンステンプレートファイルは、以下のフォルダのものを使用します。
TeamWARE Office サーバディレクトリ/http/htdocs/htd_6010/xml 配下 (TeamWARE Office 200X V1.0L10 から移行した場合)
TeamWARE Office サーバディレクトリ/http/htdocs/htd_6020/xml 配下 (TeamWARE Office 200X V1.0L20 から移行した場合)
TeamWARE Office サーバディレクトリ/http/htdocs/htd_6110/xml 配下 (TeamWARE Office 200X V2.0L10 から移行した場合)
XML レスポンステンプレートの仕様に変更はありませんが、TeamWARE Office 200X V2.0L20 の最新の XML レスポンステンプレートファイルを利用することを お奨めいたします。
最新の XML レスポンステンプレートファイルに切り替えるには、本製品の媒体に 格納されている、 TeamWARE Office 200X V2.0L20 移行説明書 (Twupnote.txt)の 「第 1 部 6.1 Web サービスの留意事項」を参照してください。
1.4 XMLアクセス機能の適用例
本機能を利用して、たとえば INTERSTAGE PortalWorks などの、企業ポータル構築 ソフトウェアと連携することにより TeamWARE Office が持つメール/カレンダー /フォーラム/ライブラリなどのコミュニケーション&コラボレーション機能を 企業ポータル上から利用できるようになります。TeamWARE Office 200X
INTERSTAGE
PortalWorks
例: DB連携アプリ
X
M
L
DBWEBサーバ
ITデスクトップ
図 1.2 企業ポータルでの利用形態2章 XMLアクセス機能のセットアップ
2.1 Webサービス(拡張機能)のインストール
XML アクセス機能を利用するためには、Web サービス(拡張機能)をインストール します。
Web サービス(拡張機能)のセットアップの詳細については TeamWARE Office 管 理者ガイド 付録 C.4.12 Web サービスのセットアップ および TeamWARE Office インストールガイド を参照してください。
Web サービス(標準機能)では、XML アクセス機能は利用できません。 拡張機能をインストールしてください。
2.2 初期化ファイル
Web サービス(拡張機能)をインストールすると、TeamWARE Office のインストール ディレクトリに初期化ファイル(標準設定では httpa1.ini)が作成されます。初期化フ ァイルには、XML アクセス機能固有のいくつかのセクションがあります。これら のセクションの指定値を変更することによって、XML テンプレートファイルの格 納場所を変更したり、XML アクセス機能を無効にすることができます。
以下に XML アクセス機能固有のセクションについて説明します。初期化ファイル の他のセクションについては、 TeamWARE Office 管理者ガイド 14 章 Web サ ービスの管理 を参照してください。 初期化ファイルを変更した場合、TeamWARE Office サーバを再起動して ください。 本マニュアルおよび TeamWARE Office 管理者ガイド で説明してい るセクションとキー以外は、変更しないでください。変更した場合、Web サービス(拡張機能)が起動しなくなるなどの、予期しない異常な動作を するおそれがあります。
2.2.1 [XMLDocument]セクション
TeamWARE Office の XML テンプレートファイルを格納する場所です。 ♦ Path キー テンプレートファイルを格納したディレクトリを指定します。 Path の最後には、必ず / (スラッシュ)を指定してください。 標準設定では、Web サービス(拡張機能)の DocumentPath 名 に /xml/ が付加されたディレクトリ名となります。2.2.2 [Request]セクション
[Request]セクションは、この Web サービス(拡張機能)が受け付けるリクエスト 種別を限定するための定義を行います。例えば、XML アクセス機能のみを受け付 けて HTTP リクエストを拒否したり、HTTP リクエストのみを受け付けて XML ア クセス機能を拒否したりすることができます。♦ accept_XMLrequest アクセスを許すリクエストの種別を設定します。以下の値を指 定可能です。 0:XML リクエストを受け付けません。HTTP リクエストのみ 受け付けます。 1:HTTP リクエストを受け付けません。XML リクエストのみ 受け付けます。 2:XML リクエストと HTTP リクエストの両方を受け付けます。 (標準設定値) XML リクエストのみを受け付け、HTTP リクエストを拒否する場合の例を以下に 示します。 accept_XMLrequest = 1
3章 アプリケーションの作成
本章では、XML アクセス機能を用いたアプリケーションの作成について記述しま す。
3.1 アプリケーションの要件
XML 形式を使ったリクエストは、TeamWARE Office Web サービス(拡張機能)に 送付します。Web サービス(拡張機能)は要求された処理の結果を XML 形式で処理 要求元のアプリケーションに返却します。
作成するアプリケーションと TeamWARE Office Web サービス(拡張機能)のリクエ スト/レスポンスは、HTTP プロトコル上でやり取りされます。 作成するアプリケーションは、HTTP プロトコルを利用して TeamWARE Office で 規定された XML 形式リクエストデータを送信し、それに対応するレスポンスデー タを受信できるものであればアプリケーションの実行環境や言語を問いません。 このように、HTTP プロトコルを使って Web サービス(拡張機能)と XML 形式のリ クエスト/レスポンスデータを交換する典型的なプログラミングとして JAVA 言 語などを用いたサーブレットあるいは JSP が考えられます。また、C 言語や perl などのスクリプトを用いた CGI プログラムでも適用可能です。
3.1.1 アプリケーション構築要素
本機能を利用して業務アプリケーションを構築するうえで、必要な構成要素は以 下のとおりです。 アプリケーションの開発環境 本機能を利用して TeamWARE Office にアクセスするアプリケーションを開発 するための開発環境です。開発環境は、作成するアプリケーションの種類に 依存します。アプリケーションは、HTTP プロトコルをサポートし、TeamWARE Office Web サービス(拡張機能)との XML データ交換が可能なものです。 TeamWARE Office セキュリティオプションを利用して SSL 通信を行う場合に は、アプリケーションは HTTPS プロトコルをサポートする必要があります。 アプリケーションの実行環境 作成したアプリケーションを実行させるための環境です。 例えば、サーブレットでアプリケーション開発した場合は、Tomcat などのサ ーブレット実行環境が必要になります。 TeamWARE Office への認証処理 XML リクエスト XML レスポンステンプレート 認 証 処 理ほとんどのリクエストにおいて、TeamWARE Office にアクセスするためには、 TeamWARE Office サーバに対する認証処理を行う必要があります。 XML アクセス機能では、Web サービスのもつ認証機構を利用しています。Web サ ービスでは基本認証(Basic 認証)を利用しています。アプリケーションから認証情 報を送出する方法については、本節後述の「リクエストの TeamWARE Office への 送出方法」、 3.1.2 留意事項 の◆ auth タグについての注意点、およびサ ンプルソースを参照してください。
X M L リ ク エ ス ト アプリケーションが TeamWARE Office サーバに発行するリクエストは、XML 形式 です。リクエストには、各サービスの各機能ごとに記述するべきタグや属性値が 規定されています。これを XML アクセス機能リクエスト仕様と呼びます。 図 3.1 XML リクエストデータの例(メッセージ一覧取得の場合) <?xml version="1.0" encoding="Shift-JIS" ?>
<teamware version="1.0" xmlversion="1.0" xmlns="urn:xmlns-fujitsu-com:tw2001-09"> <service>mail</service> <head> <title>List messages</title> </head> <body> <service>mail</service_pXML> <id_pXML></id_pXML> <type_pXML>inbox</type_pXML> <sort_pXML>m_subject</sort_pXML> </body> </teamware> サービスの指定 TeamWARE ボディ要素 TeamWARE ヘッダ要素 ルート要素 XML 宣言 XML 宣言 XML 宣言では、XML バージョンと文字コードを指定します。 XML バージョンは、1.0 です。 文字コードは、XML で指定している文字コードを指定します。encoding とい う属性で文字コード名を指定します。 指定可能な文字コード系は以下のとおりです。 - UTF-8 - Shift_JIS
TeamWARE Office がサポートしている文字コードは Shift-JIS で あり、文字コード系に UTF-8 を指定した場合でも、使用できる文字 は Shift-JIS(日本語)の文字コードと対応する文字のみになります。 ルート要素 すべての TeamWARE XML リクエストのルートタグは、<teamware>です。 データ中に1度だけ指定でき、省略はできません。本タグでは、以下のよう に version 属性、xmlversion 属性、xmlns 属性を指定します。本タグで指定し ている属性情報は変更しないでください。
<teamware version="1.0" xmlversion="1.0" xmlns="urn:xmlns-fujitsu-com:tw2001-09">
サービスの指定 処理要求する TeamWARE Office のサービスを指定するタグです。本要素は、 省略はできません。 TeamWARE ヘッダ要素 XML リクエストデータのヘッダ要素には、以下の要素があります。 要素/属性 複数 指定 省略 可 データタイプ 説明 title × × #PCDATA 本 XML リクエストの処理要求 の内容を指定します。 指定する文字列はリクエスト ごとに規定されています。詳細 については、 付録 XML リク エスト/レスポンス仕様 を参 照してください。 省略はできません。 TeamWARE ボディ要素 サーバに要求するリクエストの内容はボディ要素に指定します。 ボディ要素に含まれる要素は、リクエストによって異なります。詳細につい ては、 付録 XML リクエスト/レスポンス仕様 を参照してください。
X M L レ ス ポ ン ス テ ン プ レ ー ト
TeamWARE Office サーバは、アプリケーションから要求されたリクエスト処理結 果(XML レスポンスデータ)を XML 形式で返却します。返却される XML レス ポンスデータの内容は、対応するリクエストごとに規定され、XML レスポンステ ンプレートに記述されています。
XML レスポンステンプレートには、TeamWARE Office Web サービス(拡張機能)独 自のコマンドマクロが記述されており、実際にアプリケーションに返却される XML データは、これらのコマンドマクロが実行された結果が展開されて XML 形 式となって作成されます。
以下に、返却される XML レスポンスデータについて説明します。
図 3.2 XML レスポンステンプレートの例(メッセージ一覧取得の場合) <?xml version="1.0" encoding="Shift_JIS" ?>
<tw:teamware version="1.0" xmlversion="1.0" xmlns:tw="urn:xmlns-fujitsu-com:tw2001-09"> <tw:service>mail</tw:service>
<tw:head>
<tw:title>List messages</tw:title>
<tw:hostname>host.xmltest.xxxx.co.jp:9945</tw:hostname> <tw:date>Sat, 13 Oct 2001 17:42:09</tw:date>
</tw:head> <tw:body> <tw:inbox> <tw:messagelist> <tw:message id="aaaaaaaaaaaa"> <tw:subject>TeamWARE XML </tw:subject> <tw:mailboxid>bbbbbbbbb</tw:mailboxid> <tw:user>user001</tw:user> <tw:sender id="cccccccccccccc"> <tw:name>sende001</tw:name> </tw:sender> <tw:recipients>recipient_001</tw:recipients> <tw:importance>important</tw:importance> <tw:priority>high</tw:priority> <tw:sensitivity>private</tw:sensitivity> </tw:message> </tw:messagelist> </tw:inbox> </tw:body> </tw:teamware> TeamWARE ボディ要素 ルート要素 TeamWARE ヘッダ要素 サービス名 XML 宣言
XML 宣言
XML 宣言では、XML レスポンスデータのバージョンと文字コードが通知さ れます。Web サービス(拡張機能)に XML リクエストを投入したときに指定さ れたエンコーディング文字コードと同じになります。
ルート要素
すべての TeamWARE Office XML リクエストのルートタグは、<teamware>です。 サービスの指定 TeamWARE Office のサービス種別です。 TeamWARE Office ヘッダ要素 XML リクエストデータのヘッダ要素には、以下の要素があります。 要素/属性 複数 指定 省略 可 データタイプ 説明 title × × #PCDATA 本 XML リクエストの処理要求 の内容です。 hostname × × #PCDATA レスポンスの発行元ホスト情 報です。 date × × #PCDATA レスポンスの投入された日時 です。 TeamWARE Office ボディ要素 サーバに要求するリクエストの内容はボディ要素に指定します。 ボディ要素に含まれる要素は、リクエストによって異なります。詳細につい ては、 付録 XML リクエスト/レスポンス仕様 を参照してください。 コ ン テ ン ト タ イ プ Web サービス(拡張機能)から返却される XML レスポンスデータの文字コードは、 アプリケーションと Web サービス(拡張機能)の間で HTTP コネクション確立時に 設定するコンテントタイプに依存します。コンテントタイプと要求する XML リク エストの encoding 属性で指定する文字コードは一致させてください。 リ ク エ ス ト の T e a m W A R E O f f i c e へ の 送 出 方 法 XML リクエストの形式には、添付ファイルのあり/なしにより、2種類あります。 1. 添付ファイルなしのリクエスト XML リクエストデータのみを送出します。通常はこちらのリクエスト方式を 使用します。HTTP プロトコルの POST メソッドを用いてデータを送出します。
使用するコンテントタイプは、text/xml です。Content-Type パラメータに指定 します。同時に、charset も指定します。この指定は、XML 宣言での encoding 属性の値と同じにしてください。また、Basic 認証のための Authorization ヘッ ダの値もセットする必要があります。 HTTP リクエストヘッダの 1 行目には、URL を指定します。XML リクエ ストの場合、ここに TeamWARE Office サーバのホスト名、ポート番号 に”/?format=xml”を付加した値を指定してください。 POST http://ホスト名:ポート番号/?format=xml HTTP/1.0 HTTP リクエストヘッダ中の Content-Type パラメータには、”text/xml”を 指定してください。同時に、このリクエストのボディで送られる XML デ ータの character encoding の種類を指定します。
Content-Type: text/xml; charset=Shift_JIS or utf-8
HTTP リクエストヘッダ中の Authorization パラメータには、Basic 認証用 のデータを指定します。 Authorization: Basic 認証データ 例:以下に添付ファイルがない場合の HTTP リクエストデータの例を示しま す。 POST http://twsrv.fujitsu.com:9945/?format=xml HTTP/1.0 Accept: */* Referer: http://twsrv.fujitsu.com:9945/?format=xml Accept-Language: ja
Content-Type: text/xml; charset=Shift_JIS User-Agent: MailApp
Connection: Keep-Alive Host: twserv.fujitsu.com:8081 Cache-Control: no-cache Authorization: Basic a2FuOg== Content-length: 803
<?xml version="1.0" encoding="Shift_JIS"?>
<teamware version="1.0" xmlversion="1.0" xmlns="urn:xmlns-fujitsu-com:tw2001-09"> <service>Mail</service> <head> <title>Send message</title> </head> <body> <service>mail</service> <control_pXML>send</control_pXML>
<subject>お知らせ</subject> <description>会議を開催します。 日時 10月3日 場所 D303会議室 よろしくお願いします。</description> <to>hanako</to> <toid>VBEAAAAAABoAFwAAZAAB2 lxKPxU;;;;;hanako</toid> <reply_req>false</reply_req> <importance>normal</importance> <priority>normal</priority> <sensitivity>nonsensitive</sensitivity> <notice>/mail/notice.xml</notice> <success>/mail/notice.xml</success> <fail>/mail/notice.xml</fail> <auth>required</auth> </body> </teamware> 図 3.3 HTTP リクエストデータ例(添付ファイルがない場合) 2. 添付ファイルつきのリクエスト マルチパートにより、XML リクエストデータと添付ファイルデータを別々の パートに分けて送ります。使用するコンテントタイプは、multipart/related で す。このコンテントタイプでは、それぞれのパートに固有の ID を付加する必 要があります。XML リクエストは、最初のパートとして送ります。 HTTP リクエストヘッダの設定情報 HTTP リクエストヘッダの1行目には、URL を指定します。XML リ クエストの場合、ここに TeamWARE サーバのホスト名、ポート番号 に”/?format=xml”を付加した値を指定してください。 POST http://ホスト名:ポート番号/?format=xml HTTP/1.0 HTTP リ ク エ ス ト ヘ ッ ダ 中 の Content-Type パ ラ メ ー タ に は、”multipart/related”を指定してください。boundary には、マルチパ ートの各パートを区切るバウンダリ文字列を指定します。type には、 このリクエストの最初のパートで送られる XML データのコンテン ト タ イ プ を 指 定 し ま す 。 こ れ は XML デ ー タ で あ る の で 、 常 に”text/xml”となります。最後に、この最初のパートのコンテンツ ID を指定します。
Content-Type: text/xml; boundary=バウンダリ文字列; type=text/xml; start=最初のパートのコンテンツ ID
HTTP リクエストヘッダ中の Authorization パラメータには、Basic 認 証用のデータを指定します。 Authorization: Basic 認証データ 最初のパートのヘッダの設定情報 最初のパートは、XML リクエストデータを送出するのに使用します。 最初のパートのヘッダ中の Content-Type パラメータには、”text/xml” を指定してください。同時に、このパートのボディで送られる XML データの character encoding の種類を指定します。
Content-Type: text/xml; charset=Shift_JIS or utf-8
Content-Disposition パラメータには、常に以下の値を指定します。 Content-Disposition: form-data; name=”start”
Content-ID パラメータには、このパートのコンテンツ ID を指定しま す。 コンテンツ ID には、パートごとに固有となる ID を使用してくださ い。 Content-ID: コンテンツ ID 2 つ目以降のパートのヘッダの設定情報 2 つ目以降のパートは、添付ファイルを送付するために使用します。それ ぞれのパートは、コンテンツ ID を持ち、これらは XML データ中の <attachment>タグで指定されます。これにより、XML データと各パート のデータが関連付けされます。コンテンツ ID には、ユニークな値を設定 してください。 ヘッダ中の Content-Type パラメータには、添付ファイルのコンテン トタイプを指定してください。 このパートのボディで送られる XML データがテキストデータの場合には、character encoding の種類も指 定します。 Content-Type: コンテントタイプ; charset=キャラクタエンコーディ ング Content-Disposition パラメータには、添付ファイルのファイル名を以
下の形式で指定します。
Content-Disposition: form-data; name=”attachment”; filename=ファイル 名 Content-ID パラメータには、このパートのコンテンツ ID を指定しま す。 コンテンツ ID には、パートごとに固有となる ID を使用してくださ い。 Content-ID: コンテンツ ID 例:以下に、添付ファイルありの場合の HTTP リクエストデータの例を示し ます。 POST http://twsrv.fujitsu.com:9945/?format=xml HTTP/1.0 Accept: */* Referer: http://twsrv.fujitsu.com:9945/?format=xml Accept-Language: ja
Content-Type: multipart/related; boundary=---7d12c633f60; type=text/xml; ; start="<[email protected]>"
User-Agent: MailApp Connection: Keep-Alive Host: twsrv.fujitsu.com:9945 Cache-Control: no-cache Authorization: Basic a2FuOg== Content-length: 1267
---7d12c633f60 Content-Type: text/xml; charset=Shift_JIS Content-Disposition: form-data; name="start" Content-ID: <[email protected]> <?xml version="1.0" encoding="Shift_JIS"?>
<teamware version="1.0" xmlversion="1.0" xmlns="urn:xmlns-fujitsu-com:tw2001-09"> <service>Mail</service> <head> <title>Send message</title> </head> <body> <service>mail</service> <control_pXML>send</control_pXML> <subject>お知らせ</subject> <description>会議を開催します。 日時 10 月 3 日
場所 D303 会議室 よろしくお願いします。</description> <to>hanako</to> <toid>VBEAAAAAABoAFwAAZAAB2 lxKPxU;;;;;hanako</toid> <reply_req>false</reply_req> <importance>normal</importance> <priority>normal</priority> <sensitivity>nonsensitive</sensitivity> <notice>/mail/notice.xml</notice> <success>/mail/notice.xml</success> <fail>/mail/notice.xml</fail> <auth>required</auth> <attachment href="cid:E:\doc\[email protected]"/> </body> </teamware> ---7d12c633f60 Content-Type: text/plain; charset=Shift_JIS
Content-Disposition: form-data; name="attachment"; filename="E:\doc\agenda.txt" Content-ID: <E:\doc\[email protected]> 会議議題 1、連絡事項 2、進捗報告 3、懸案事項の検討 4、今後の展開 ---7d12c633f60-- 図 3.4 HTTP リクエストデータ例(添付ファイルありの場合)
3.1.2 留意事項
◆XML 形式の指定
XML リクエストを TeamWARE Office Web サービス(拡張機能)に要求する場合には、 必ず URL パラメタとして “/?format=xml”を付加してください。 ◆オブジェクト ID の取得方法について TeamWARE Office では、データの単位をオブジェクトと呼んでいます。ライブ ラリのフォルダ、ユーザ情報、メール、カレンダーの予約など、すべてがオブジ ェクトです。オブジェクトには、システムでユニークな識別子(オブジェクト ID)が付けられています。特定のオブジェクトに対する XML リクエストを発行 する多くの場合、リクエストの対象を指定するためにオブジェクト ID を指定す る必要があります。 以下に、Web サービスの受信メール一覧から1つのメールエントリのオブジェ クト ID を取得する場合について、Internet Explorer の表示画面を例に説明します。 画面が表示されている状態で取得したいオブ ジェクト上にマウスを移動します。マウスの 右ボタンをクリックし、プロパティを表示す ると、そのオブジェクトに付けられた ID や URL が表示されます。 図 3.5 Web サービスの受信メール一覧画面例
HTML ドキュメント teamware.pre.test.fujitsu.com/ URL にある id=以下の JBEAAAAAAAAASgAAYQABifdxJPxU がオブジェクトID です。 図 3.6 プロパティ画面例 ◆スコープ ID の取得方法について メールエントリやライブラリおよびフォーラムに登録されたメッセージドキュ メントは、一度取得するとスコープキャッシュとよばれるキャッシュに保持さ れます。この機構は、サーブレットなどのユーザプログラムからの要求のたび に TeamWARE Office サーバのデータベースにアクセスすることを回避するとと もに、表示一覧数を分割することで処理の高速レスポンスを実現するものです。 例えば、100 通のメッセージが格納されている受信メールボックスにおいて先頭 から 20 通のメッセージを取り出したい場合は、scostart_pXML 要素に 1 を、 scorange_pXML 要素に 20 を指定します。 図 3.7 メッセージ一覧(1件から20件)の取得リクエストの例(抜粋) 上記のリクエストに対するレスポンス XML に、スコープキャッシュに関する情 報が含まれます。 <body> <service>mail</service> <id_pXML> </id_pXML > <type_pXML>inbox</type_pXML> <scotarg>1</scotarg> <scostart_pXML>1</scostart_pXML> <scorange_pXML >20</scorange_pXML> <template_name>/mail/list_messages.xml</template_name> </body>
図 3.8 メッセージ一覧取得リクエストに対するレスポンス XML の例(抜粋) 後続のメッセージ一覧を取得したい場合、2回目のリクエストにスコープ ID(例 では、"00041805")を指定することで高速なレスポンスを実現できます。 次のスコープの先頭メッセージおよ び末尾メッセージのインデックス、 スコープの最大メッセージ数が通知 されます。 スコープ ID とスコープの先頭メッ セージおよび末尾メッセージのイン デックス、全体のメッセージの件数 が通知されます。 <tw:body> <tw:scope id="00041805"> <tw:scostart>1</tw:scostart> <tw:scoend>20</tw:scoend> <tw:scototal>100</tw:scototal> </tw:scope> <tw:scope_next> <tw:scostart>21</tw:scostart> <tw:scocount>20</tw:scocount> <tw:scorange>20</tw:scorange> </tw:scope_next> <tw:inbox> </tw:messagelist> </tw:message> </tw:message> </tw:messagelist> </tw:inbox> </tw:body> ここに個々のメッセージのプロパティ情報が展開されます。 ◆XML リクエスト(Content-Type)の指定について
TeamWARE Office Web サービス(拡張機能)に送信する XML データのヘッダには、 Content-Type を設定します。メール一覧取り出しなど通常のリクエストでは、 "text/xml"を指定します。また添付ファイル付きのメールを送信したり、添付フ ァイル文書をフォーラム/ライブラリに登録する場合には、"multipart/related"を 指定してください。 ◆データのダウンロードについて メール/カレンダーの添付ファイルやフォーラム/ライブラリに登録された添 付データの取り出しリクエストはありません。 添付データの取り出しは、以下の手順で行います。
(1) "Get message"や"Get document"などメッセージの取得リクエストを送出し ます。 (2) リクエストに対応するレスポンスデータから添付データにアクセスするた めの URL を取得します。 (3) レスポンスにより通知された URL にサーブレットからアクセスして添付デ ータの取り出しを行います。 添付データの取り出し方法の詳細は、 4.4 サンプルアプリケーション3
およびサンプルプログラムを参照してください。 ◆Java でアプリケーションを作成する際の注意点
Java の HttpURLConnection クラスを使用して、TeamWARE XML インタフェース にアクセスする場合、以下のことに注意する必要があります。 レスポンスの HTTP ステータスコードがエラーの場合(具体的には、400 番台、 500 番台の場合)、HttpURLConnection クラスの getInputStream メソッドで例外が 発生するため、レスポンス XML を取り出すことができません。この場合は、 HTTP ステータスコードを見て処理をしてください。 ◆auth タグについての注意点 ほとんどのリクエストでは、<auth>タグに”required”の値を指定することが必須 です。この指定を行った場合には、認証情報は必須となりますので、リクエス トHTTPヘッダに Basic 認証データを指定してください。<auth>タグを指定し ない場合には、リクエストHTTPヘッダに Basic 認証データは指定しないでく ださい。 Basic 認証情報は、TeamWARE のログイン名とパスワードから、以下のフォーマ ットの文字列を作成し、Base64 形式でエンコードしたものです。 ログイン名+”:”+パスワード リクエスト HTTP ヘッダの Authorization パラメータに以下の形式で指定してく ださい。
例、Authorization: Basic a2FuOg==
Authorization: Basic [Base64 形式文字列]
◆エラー時の対処 以下に、エラーが発生した場合の対処の一例を示します。 1) まず、HTTP レスポンスコードを参照します。 401 エラーの場合、認証情報をリクエストヘッダに設定していないか、 していても、その認証情報が正しくない可能性があります。 400 系、500 系のエラーコードの場合、Java の HttpURLConnection ク ラスを使っている場合、例外が発生します。 2) レスポンス XML 中の result_message タグの中身を見てエラーを処理 するルーチンを呼ぶ。 リクエスト内容が正しいと思われる場合でも、エラーが返る場合には、 リクエスト形式が間違っている可能性があります、以下の見直しを行っ てみてください。 必須タグがすべて指定されているか タグ名が「XML アクセスインタフェース機能一覧」に記載されてい
るタグ名と一致しているか タグの要素のフォーマットが、「XML アクセスインタフェース機能 一覧」に記載されている説明にあったフォーマットとなっているか。 認証情報(ログイン名、パスワード)は正しいか
4章 サンプルアプリケーション
サンプルプログラムとその処理概要を紹介します。アプリケーションを作成する ときの参考にしてください。 ここでは、Java サーブレットを使ったサンプル 2 種類と Java アプリケーションと して作成されたコマンドラインツール1種類の合計3つのサンプルを紹介します。4.1 サンプルアプリケーションの実行環境
サンプルプログラムを実行するには、サーブレット実行環境と Java アプリケーシ ョンの実行環境を整える必要があります。4.1.1 Javaアプリケーションの実行環境
サンプル Java アプリケーションを実行するためには、Java の実行環境を作成する 必要があります。JDK1.2.1 もしくは、それ以降のバージョンを使用してください。 サンプル Java アプリケーションの動作は、JDK1.2.2 を使って確認して います。 サンプルプログラムおよびサンプルソースコードは、XML アクセスイ ンタフェース機能の利用方法を示すために提供するものであり、実際の 業務で利用されることは想定しておりません。そのため、エラーケース については考慮されておりませんのでご了承ください。4.1.2 Javaサーブレットの実行環境
サンプル Java サーブレットを実行するためには、サーブレットの実行環境を作成 する必要があります。以下は、サーブレットエンジンとして代表的な Jakarta project の Tomcat 3.2.3 を利用して Windows NT®上でサンプルを実行する場合の作成手順 例です。Tomcat のバイナリおよびドキュメントは、Apache サイトから入手してく ださい。 他のサーブレット実行環境を利用する場合は、概要するドキュメントを参照して ください。ここでは、Windows NT®環境で、E:¥jakarta-tomcat フォルダに Tomcat 3.2.3 をインストールした場合について記述しています。 ① Tomcat のインストール Tomcat のインストールについては、Tomcat の関連ドキュメントを参照してく ださい。 ② サンプルプログラムのコピー
サンプルプログラムは、インストール CD(TeamWARE Office 200X V2.0L20) 内に格納されています。 格納場所は以下のとおりです。 - Windows NT® : xmlaccess¥servlets¥samples - Solaris : xmlaccess/servlets/samples samples フォルダを E:¥jakarta-tomcat¥webapps フォルダにコピーします。 ③ server.xml の編集 server.xml ファイルは、Web サーバの設定を記述するための xml ファイルです。 E:¥jakarta-tomcat¥conf¥server.xml ファイルの末尾に、サンプルプログラムに関 するサーブレット名や格納場所についての情報を追加します。 <server><ContextManager></ContextManager></server>タグ内に以下を追加しま す。
<Context path="/samples" docBase="webapps/samples" debug="0" reloadable="true" > </Context>
④ webapps/samples/Sample.properties の設定
②でコピーした samples/Sample.properties ファイルを環境に合わせて編集しま す。
編集可能な情報は以下のとおりです。
Host:サンプルサーブレットから接続する TeamWARE Office サーバのホスト 名を指定します。
Port:サンプルサーブレットから接続する TeamWARE Office の Web サービ ス(拡張機能)の利用するポート番号を指定します。標準設定では、 9945 が設定されています。 Host=samplehost.xxx.nnn.nnn.co.jp Port=9945 ⑤ webapps/samples/proxy.properties の設定 ②でコピーした samples/proxy.properties ファイルを環境に合わせて編集します。 編集可能な情報は以下のとおりです。 proxySet=true proxyHost=proxy.aaa.bbbbb.ccccc.co.jp proxyPort=8080
proxySet :プロキシを利用する場合は、true を設定します。プロキシを利用 しない場合は、false を指定します。 proxyHost:プロキシのホスト名を指定します。プロキシを使用しない場合は 何も指定しないでください。 proxyPort:プロキシのポート番号を指定します。プロキシを使用しない場合 は何も指定しないでください。 ⑥ 環境変数の設定 Tomcat を起動するコンソールで以下のように環境変数の設定を行います。 set TOMCAT_OPTS=-Dsample.path=e:/jakarta-tomcat/webapps/samples ⑦ Tomcat の起動 Tomcat を起動します。 tomcat start ⑧ サンプルの実行 ブラウザから以下の URL を指定します。 samples/calServ を実行する場合。 samples/mailServ を実行する場合。 http://tomcatのホスト名:ポート番号/samples/calServ http://tomcatのホスト名:ポート番号/samples/mailServ サンプル Java サーブレットの動作は、Tomcat 3.2.3 を使って 確認しています。 サンプルプログラムおよびサンプルソースコードは、XML ア クセス機能の利用方法を示すために提供するものであり、実 際の業務で利用されることは想定しておりません。そのため、 エラーケースについては考慮されておりませんのでご了承く ださい。
4.2 サンプルアプリケーション1
Calendar サービスを利用したサンプルアプリケーションです。 サンプルプログラムをインストール媒体に格納しています。必要に応じてご利用 ください。 サンプルプログラム:CalServ.java、XmlDataInfo.java この例は、指定した期間内の未了承の予約に対して、了承または拒否を行います。 プログラムの処理概要 ① TeamWARE Office にログインします。 図 4.1.ログイン画面 xmlsample.aaabbb.co,jp② TeamWARE Office にログインし、メイン画面を表示します。 図 4.2 未回答予約の検索条件設定画面 ③ 予約の一覧を表示する開始日時と検索期間を指定して「検索」ボタンをクリ ックします。
④ 未回答予約一覧が表示されるので、それぞれの予約について「了承」、「拒否」 または「保留」のいずれかを選択します。 「保留」を選択した予約については、了承処理は行いません。 図 4.3 未回答予約一覧
⑤ 実行結果が表示されます。(図 4.4)
図 4.4 結果一覧
プログラムの処理シーケンス
Webブラウザ
サーブレット
TW O ffice
ログイン
Get personal profile
ユーザ名か
らIDを取得
ユーザID
Get appointment list
未了承予約リスト
Confirm appointment
または
Reject appointment
未了承予約リスト
了承実行
成功 または エラー
結果リスト
未回答の
予約リスト
を取得
1つ1つの
予約に対し
て処理を繰
り返す。保
留の予約
は処理しな
い
期間の指定
初期画面
4.3 サンプルアプリケーション2
Mail サービス、Forum サービスおよび Directory サービスを利用したサンプルアプ リケーションです。 サンプルプログラムをインストール媒体に格納しています。必要に応じてご利用 ください。 サンプルプログラム:AttachmentFileInfo.java、XmlDataInfo.java この例は、作成した文書を指定したフォーラムに登録し、さらに指定したユーザ にメールで送付します。 プログラムの処理概要 ① TeamWARE Office にログインして、メイン画面を表示します。(図 4.5) 図 4.5 サンプル2のメイン画面
② メイン画面に表示される「フォーラム投稿先」のテキストフィールド横の「検 索」をクリックして、メインフォーラム一覧画面を表示し、作成記事を投稿 するメインフォーラムを選択します。(図 4.6) 図 4.6 メインフォーラム一覧画面
③ メイン画面に表示される「メール送信先」のテキストフィールド横の「検索」 をクリックして、ユーザ一覧画面を表示し、メール送信先ユーザを選択しま す。(図 4.7) 図 4.7 ユーザ一覧表示画面
④ 作成記事の「表題」と「内容」を記入し、添付ファイルを指定したのち、「実 行」ボタンを押して文書を投稿します。
図 4.8 表題、内容の設定
⑤ 実行結果が表示されます。
図 4.9 処理結果画面
プログラムの処理シーケンス
Webブラウザ
サーブレット
TW Office
ログイン
Get personal profile
ユーザ名か
らIDを取得
ユーザID
List main forums
メインフォーラムリスト
ユーザ名
フォーラム一覧
Create new message
検索結果
該当ユーザ
を検索
投稿実行
フォーラム選択
初期画面
メール送信先選択
Directory検索
成功またはエラー
Send message
成功またはエラー
処理結果
メインフォー
ラムの一覧
を取得
フォーラム記
事の投稿
メールの送
信
4.4 サンプルアプリケーション3
Mail サービスを利用したサンプルアプリケーションです。このサンプルは、Java サーブレットではなく、Java アプリケーションです。 サンプルプログラムをインストール媒体に格納しています。必要に応じてご利用 ください。 サンプルプログラム:AttachmentFileInfo.java、Download.java、MailApp.java、 XmlDataInfo.java この例は、ユーザの受信フォルダのメールをダウンロードします。未読メールの みダウンロードするか、全受信メールをダウンロードするかを指定できます。 プログラムの処理概要 ① Samples.properties ファイルに適切なパラメータを設定します。(図 4.10) 図4.10 Sample.properties ファイル 編集可能な情報は以下のとおりです。Host:サンプルアプリケーションから接続する TeamWARE Office サーバのホ スト名を指定します。
Port:サンプルアプリケーションから接続する TeamWARE Office サーバの Web サービス拡張機能の利用するポート番号を指定します。デフォ ルトでは、9945 が設定されます。 LoginName:ログイン名を指定します。 Password:パスワードを指定します。 TargetPath:ダウンロードしたファイルを格納するフォルダのパスを指定しま す。 Unread:未読メールのみのダウンロードの場合 true、受信メールすべてのダ ウンロードの場合 false を指定します。 Host= twserv.fujitsu.com Port=9945 LoginName=taro Password= TargetPath= e:/mail Unread=false ② コマンドプロンプトから、サンプルプログラムを実行します。(図 4.11) 以下のようなメッセージが表示されます。
図4.11 処理結果画面 E:¥download>java MailApp
TeamWARE Office XML support Sample Program
(Mail サービスを利用した受信メッセージの一括ダウンロード) 以下の設定で、受信メッセージをダウンロードします。 TeamWARE のホスト名 :twserv.fujitsu.com TeamWARE のポート番号:9945 ログイン名 :taro パスワード :******** 格納先パス :e:/mail ダウンロード対象 :受信メッセージ全て 6 個のメッセージをダウンロードしました。 受信メッセージ一覧:e:/mail /index.htm E:¥download> ③ サンプルプログラム実行時に指定したフォルダに、HTMLファイル、テキ スト化されたメール本文、取り出された添付ファイルが格納されています。 受信メッセージ一覧を表示するために、 index.htm をブラウザで表示します。 (図4.12) 図4.12 処理結果画面
プログラムの処理シーケンス Java アプリケーションン TW Office 添付ファイル 添付ファイルの取得 メッセージ Get message メッセージ一覧 List messages 保存 メッセージの数 だけ繰り返す 添付ファイルの数 だけ繰り返す 保存
5章 提供機能一覧
サービス 機能名 機能説明
Free disk info ディスク使用量の取得 Get Initialization file 初期化ファイルの内容取得
List Billing Log files ビリングイベントログファイル一覧の取得 List Audit Log files 監査イベントログファイル一覧の取得 運 用 管 理 サ ー ビ ス
(Admin)
Get Thread Monitor 運用状態の監視
Get mailbox property and list folders メールボックス情報取り出し List sub folders サブフォルダ一覧の取り出し List Messages メッセージ一覧の取り出し Get Message メッセージの取り出し Delete Message メッセージの削除 メッセージング サービス1 (Mail) Send Message メッセージを送信 Make appointment 予約の作成 Get appointment list 予約一覧の取得 Get property of specified appointment 予約のプロパティ取得 Modify appointment 予約の変更
Confirm appointment 予約の確認 Reject appointment 予約の拒否 Delete appointment 予約の削除
Get calendar property カレンダーのプロパティ取得 Get resource calendar property 設備カレンダーのプロパティ取得 予約サービス
(Calendar)
Search free time for resource calendar 設備カレンダーの空き時間検索 List Libraries ライブラリ一覧の取り出し List servers which have library services ライブラリサーバ情報の取得
List folders in a library ライブラリ配下のフォルダ一覧取り出し List folders in a folder フォルダ配下のフォルダ一覧取り出し List documents in a folder フォルダ配下のドキュメント一覧取り出し
Get document ドキュメントの取り出し Delete document ドキュメントの削除 Lock document ドキュメントのロック Unlock document ドキュメントのアンロック ストレージサービス (Library)
Save new document/ Save new version ドキュメントの登録
サービス 機能名 機能説明
List main forums メインフォーラムの一覧作成 List servers which have Forum service フォーラムサーバ情報の取得
List sub forums under a forum フォーラム下のサブフォーラム一覧作成 List messages under a forum フォーラム下のメッセージ一覧作成
Get Message メッセージの取得
Delete Message メッセージの削除 メッセージング
サービス2 (Forum)
Create new/reply message メッセージの登録/メッセージの返答 Get personal profile 個人情報の取得
List object ディレクトリエントリの検索
Get user properties ユーザプロパティ情報の取得 Get external entry 外部エントリーの取得 Get Group properties グループ属性の取得
Get resource calendar properties 設備カレンダーの属性を取得 Modify personal profile 個人情報の変更
List LDAP Entries LDAP ディレクトリの検索 情報照会サービス
(Directory)
Get Property LDAP エントリのプロパティ情報取得
Search ディレクトリエントリの検索2