WisdomではWebで実行できるコマンド、Javaアプリケーションとして実行できるコマンドの2つの種類があります。
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を指定します。
コマンドクラスはブラウザから呼び出され実行されます。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>
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メソッドの記述は不要です。