ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

11.3.1 インタプリタ形式での実行

ビジネスクラスからの実行

XMLデータ仕様記述をインタプリタ形式で実行する場合は、標準的には以下のように記述します。

import com.fujitsu.uji.DispatchContext;
import com.fujitsu.uji.xscript.ESpecValidator;
import com.fujitsu.uji.xscript.ESpecResultException;
import com.fujitsu.uji.xscript.ESpecException;

....

    public void processOrder(DispatchContext context, OrderBean bean) throws java.lang.Exception {
        ESpecValidator validator = 
            ESpecValidator.getInstance(getClass().getClassLoader());            // (1)
        validator.setInfLoader(context.getApplicationProfile().getInfLoader()); // (2)
        try {
            validator.setXml("checkPrice.xml");                                 // (3)
            validator.validate("checkValue", bean);                             // (4)
        } catch(ESpecResultException e) {
            ...                                                                 // (5)
        } catch(Exception e) {
            throw e;                                                            // (6)
        }
        ...
    }

(1) ESpecValidatorクラスのインスタンスを作成します。利用者定義メソッド呼び出しのために、ClassLoaderを引数にします。

(2) InfLoaderを指定することで、XMLファイルの読み込み場所を設定ファイルフォルダにします。設定ファイルフォルダは、コマンドマップ、リモートマップなどApcoordinatorの定義ファイルを置くフォルダです。例えば、Webアプリケーションの場合はWEB-INFフォルダです。

(3) setXmlメソッドは、XMLデータ仕様記述のXMLファイルを読み込みます。

(4) validateメソッドによって、XMLデータ仕様記述を実行します。代入先に別のデータBeanを利用する場合には、データBeanを2個指定する形式のメソッドを利用します。

(5) 項目チェックでエラーになった場合は、ESpecResultExceptionとなります。一般的には、画面にエラー情報を出して再入力の処理になります。

(6) その他の例外の場合は、XMLデータ仕様の記述や実行環境を確認してください。

コマンドスクリプティングからの実行

コマンドスクリプティングからXMLデータ仕様記述を呼び出すことができます。

<?xml version="1.0" encoding="Shift_JIS"?>
<commandMap
    xmlns=http://interstage.fujitsu.com/schemas/uji/commandMap
    xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
    xsi:schemaLocation="http://interstage.fujitsu.com/schemas/uji/commandMap
                        http://interstage.fujitsu.com/schemas/uji/commandmap.xsd">
  ...
  <entry bean="sample.OrderBean" verb="process">
    <specValidate file="checkPrice.xml" name="checkValue" />
    <specSection>
      <term property="val1" op="ADD" operand="val2" target="result"/>
    </specSection>
    ...
    <catch exception="ESpecResultException">
      ...
    </catch>
  </entry>
</commandMap>

コマンドスクリプティングの概要については“第10章 コマンドスクリプティング”、詳細については“定義ファイルリファレンス”を参照してください。