「アプリケーション開発」のための汎用性が高い、かつ単純なAPIを持ったフルスタックのJavaフレーム
  • TEL: 03-6418-5221
  • TEL: 03-6418-5221

コマンドクラスの作成と実行

WisdomではWebで実行できるコマンド、Javaアプリケーションとして実行できるコマンドの2つの種類があります。

Webで実行するコマンドの作成

wisdom.core.application.IRequestCommandを実装したAbstractRequestCommandクラスの継承

 IRequestCommandインターフェースはWebで使用するコマンドを定義したインターフェースです。Wisdomでは、このインターフェース実装クラスがWebコマンドとして実行可能です。このインタフェースを実装するにはwisdom.core.application.AbstractRequestCommanedクラスを継承し、抽象メソッド _execute() を実装します。
例)実行後にJSPを表示するコマンドクラス

package tutorial;
import wisdom.core.application.AbstractRequestCommand;
public class HelloWorld extends AbstractRequestCommand {
    /**
    * 遷移先JSPを{@link IRequestCommand#setPage(String)}を使用し設定します<br> */
    protected void _execute() throws Exception {
        setPage ("tutorial/helloworld.jsp" );
    }
}

コマンドクラスで実行後のJSPを指定するには

AbstractRequestCommand#setPage(String)

コマンド実行後に転送するJSPを指定します。

AbstractRequestCommandを継承したWebコマンドのruntime-config.xmlへの登録

 コマンドクラスはブラウザから呼び出され実行されます。wisdomではwisom.core.runime.RuntimeServletがコマンドクラスを呼び出します。RuntimeServletはクライアントからのパラメータ引数から実行するコマンドクラスを呼び出し実行します。コマンドクラスの呼び出しにはruntime-config.xmlの定義が使用されます。上のHelloWorldコマンドを実行するには以下ようにruntime-config.xmlに登録します。RuntimeServletは「reqid」というパラメータ引数の値を使用して目的のコマンドクラスを実行します。
例)runtime-config.xml 

<?xml version='1.0' encoding='Shift_JIS'?>
<commands>
    <reqid id='hello' command='tutorial.HelloWorld' desc='ハローワールド' ></reqid>
</commands>

ブラウザからのWebコマンドクラスの呼び出し

上の例で、reqidの値が"hello"の場合はtutorial.HelloWorldコマンドを実行する、と定義しました。これをブラウザから呼び出すには

例)
http://localhost/wisdom/rp?reqid=hello

と入力することでtutorial.HelloWorldコマンドが実行されます。

Javaアプリケーションとして実行できるコマンドの作成

wisdom.core.application.IBatchCommandを実装したAbstractBatchCommandクラスの継承

IBatchCommandインターフェースはJavaアプリケーションとして実行可能なコマンドを定義したインターフェースです。wisdomでは、このインターフェース実装クラスがJavaアプリケーションとして実行可能です。このインタフェースを実装するにはwisdom.core.application.AbstractBatchCommanedクラスを継承し、抽象メソッド _execute() を実装します。またIBacthCommandはRuntimeServletの初期ロード時に実行するコマンドとしても利用できます。
例)IBatchCommandを継承したHelloBatchWorld.java l 

package tutorial;
import wisdom.core.application.AbstractBatchCommand;

public class HelloBatchWorld extends AbstractBatchCommand {

    public void _execute() throws Exception {
        System.err.println("hello world");
    }

    public static void main(String[] args) throws Exception {
        AbstractBatchCommand c = new HelloBatchWorld();
        c.execute();
    }
}

※コマンドは_execute()メソッドの実装で終わります。Javaアプリケーションとして実行するためにmainメソッドを記述する必要がありますが、RuntimeServletの初期ロード時の実行に限定される場合mainメソッドの記述は不要です。