• 検索結果がありません。

概要

ドキュメント内 intra-mart WebPlatform / AppFramework (ページ 35-38)

4.1 Web サービス・プロバイダの作成

4.1.1 概要

JavaScript関数のWebサービス化は、関数を実行するためのJavaクラスを作成し、そのJavaクラスをWebサービ

スとして公開することで実現します。(以降、このJavaクラスを 「JavaScriptラッパークラス」 と呼びます)

Webサービスとして公開されたJavaScirpt関数が実行されるまでの流れを以下に示します。

 クライアントが、Webサービスの実行を要求します。

 Webサービス実行エンジン「Axis2」が、受け付けたリクエストに該当するJavaScriptラッパークラス のメソッドを呼び出します。

 ラッパークラスは 「JavaScriptUtilityクラス」 を利用してJavaScript関数を実行します。

 以降、実行結果が適宜変換され、クライアントに返却されます。

開発者は、上記のシーケンス図の中で太い点線で囲まれた3種類のものを作成する必要があります。

一つ目は、「Webサービスとして公開したいJavaScript関数」です。二つ目は、JavaScript関数を実行するための

「JavaScriptラッパークラス」です。三つ目は、JavaScript関数の引数、および、返却値のオブジェクト変換に必要な

「型情報クラス」です。「型情報クラス」 とはJavaScriptオブジェクトのプロパティ構成を、JavaBeanで表現した単純 なクラスです。

Page 30

Copyright 2000-2012 株式会社NTTデータ イントラマート All rights Reserved.

および、JavaScript形式 から Java形式へのオブジェクトを自動的に変換し、JavaScript関数を実行します。

オブジェクト間のプロパティ変換規則は「4.1.1.1.1 プロパティ変換規則 : Java形式 → JavaScript形式」 およ び 「4.1.1.1.2 プロパティ変換規則 : JavaScript形式 → Java形式」を参照してください。

4.1.1.1.1 プロパティ変換規則 : Java形式 → JavaScript形式

Java JavaScript

null → null

java.lang.String → String

java.lang.Number → Number

java.lang.Boolean → Boolean

java.util.Date java.util.Calendar

→ Date

byte[]

javax.activation.DataHandler

→ String (バイナリ)

配列 → Array

上記以外のクラスは変換対象外です。(例えば、List, Map, Setを変換することはできません)

JavaBeanのプロパティの値がJavaBean形式のインスタンスである場合、さらにそのプロパティの変換を試みます。

詳細は、APIリスト「JavaScriptUtility」のjavaBeanToJS(Object)メソッドの説明を参照してください。

作成者:株式会社 NTT データ イントラマート

Page

31 4.1.1.1.2 プロパティ変換規則 : JavaScript形式 → Java形式

JavaScript Java 備考

null undefined

→ null -

java.lang.String -

String →

java.lang.Character 先頭1文字をCharacterに変換します。

byte[]

String (バイナリ) →

javax.activation.DataHandler

「String (バイナリ)」とは、JavaScriptAPIの「Fileオブジ ェクト」や「VirtualFile オブジェクト」の「load()関数」など で取得できるファイルデータ(バイナリ)の事を意味しま す。

Number → java.lang.Number

java.lang.Number のサブクラスが指定された場合は、

その型に変換されます。変換可能なjava.lang.Number のサブクラスは Double, Float, Long, Integer, Short, Byteの6クラスです。

Boolean → java.lang.Boolean -

java.util.Date

Date →

java.util.Calendar

-

Array → 配列

JavaScript の Array 要素の型がすべて同じであり、か

つ、その型がJavaの配列要素の型に変換可能でなけ ればなりません。

java.lang.String java.lang.Number

任意のJavaScriptオブジェク

ト →

java.lang.Boolean

JavaScript オブジェクトの文字列表現が変換可能な場

合に限る。

上記以外のクラスは変換対象外です。(例えば、List, Map, Setを変換することはできません)

JavaBeanのプロパティの型がJavaBean形式クラスの場合、さらにそのプロパティの変換を試みます。

詳細は、APIリスト「JavaScriptUtility」のjsToJavaBean(Object, Class)メソッドの説明を参照してください。

Page 32

Copyright 2000-2012 株式会社NTTデータ イントラマート All rights Reserved.

ドキュメント内 intra-mart WebPlatform / AppFramework (ページ 35-38)