クラス ShellTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.ShellTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
ネイティブなプロセスを作成し、バッチファイルやアプリケーションを起動するタグです。
プロセスの状態に応じて、下記のリターンコードが得られます。
SHELL.RTN_CODE = 0 : 正常 (ページの残りを評価する。)
SHELL.RTN_CODE = 1 : 処理中 (ページの残りを評価する。)
SHELL.RTN_CODE = 9 : 取消 (ページの残りを評価する。)
SHELL.RTN_CODE = -1 : 異常終了(useStop:true ページの残りの処理を行わない。false:残りを評価する。)
異常終了の場合は、このタグ以降の処理を中止します。
wait 属性を使用して、処理の終了を待たずに、復帰することも出来ます。この場合は、
SHELL.RTN_CODE = 1 となり、そのまま、処理は継続されます。このSHELL.RTN_CODE は、
リクエスト変数にセットされていますので、そのまま、value タグで、取得可能です。
action 属性に指定できるアクション名は、以下のとおりです。
RUN Shellオブジェクトを生成/実行します。(セッションに登録しません。)
SET Shellオブジェクトを生成/実行し、セッションに登録します。
すでにセッションに登録済みのShellオブジェクトが実行中の場合は、途中経過を報告します。
GET セッションに登録されている Shellオブジェクトを呼び出します。
セッションに登録されていない場合は、異常終了になります。
REMOVE セッションから、Shellオブジェクトを削除します。
Shellが実行中の場合は強制終了します。
- 関連項目:
- 機能分類
- その他部品
- 形式サンプル:
- ●形式:<og:shell program="…" /> ●body:なし ●Tag定義: <og:shell program ○【TAG】シェルファイルを実行する時に引き渡すコマンドを指定します(必須)。 useBatch 【TAG】BATCHプロセスを実行するのかどうか[true/false]を指定します(初期値:false) wait 【TAG】プロセスの終了を待つかどうか[true/false]を指定します(初期値:true[待つ]) timeout 【TAG】プロセスの実行処理のタイムアウトを設定します (初期値:SHELL_TIMEOUT[=3600]) stdout 【TAG】実行結果を標準出力に出力するかどうか[true/false]を指定します(初期値:false) stderr 【TAG】実行結果をエラー出力に出力するかどうか[true/false]を指定します(初期値:false) info 【TAG】インフォメーション情報を出力するかどうか[true/false]を指定します(初期値:false) action 【TAG】アクション(RUN,SET,GET,REMOVE)をセットします(初期値:RUN) workDir 【TAG】作業ディレクトリを指定します(初期値:Java仮想マシンの作業ディレクトリ) envKeys 【TAG】環境変数のキーをCSV形式で指定します(初期値:現状のJava仮想マシンの環境) envVals 【TAG】環境変数の値をCSV形式で指定します(初期値:現状のJava仮想マシンの環境) display 【TAG】処理結果を画面に表示するかどうか[true/false]指定します(初期値:true) useStop 【TAG】エラー時に停止するかどうか[true/false]を指定します(初期値:true) 7.1.0.0 (2020/01/20) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) /> ●使用例 <og:shell program = "プログラム" dir /S や、abc.bat など action = "アクション" [RUN/SET/GET/REMOVE] useBatch = "バッチ使用" バッチ:true/false (初期値:false) wait = "終了待ち" 処理終了まで待つ:true/待たない:false (初期値:true) stdout = "標準出力使用" 標準出力使用:true/未使用:false (初期値:false) stderr = "エラー出力使用" エラー出力使用:true/未使用:false (初期値:false) info = "状態表示" シェルの状態表示:true/未使用:false (初期値:false) display = "画面表示" 画面に表示する:true/表示しない:false (初期値:true) useStop = "エラー時停止" エラー時に停止する:true/停止しない:alse (初期値:true) 7.1.0.0 (2020/01/20) /> <og:value command="GET" key="SHELL.RTN_CODE" />
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final String
action 引数に渡す事の出来る コマンド 取得 "GET"static final String
action 引数に渡す事の出来る コマンド 削除 "REMOVE"static final String
action 引数に渡す事の出来る コマンド 実行 "RUN"static final String
action 引数に渡す事の出来る コマンド 登録 "SET"クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport
bodyContent
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
【TAG】アクション[RUN/SET/GET/REMOVE]をセットします(初期値:RUN)。void
setDisplay
(String flag) 【TAG】処理結果を画面に表示するかどうか[true/false]指定します(初期値:true)。void
setEnvKeys
(String keys) 【TAG】環境変数のキーをCSV形式で指定します(初期値:現状のJava仮想マシンの環境)。void
setEnvVals
(String vals) 【TAG】環境変数の値をCSV形式で指定します(初期値:現状のJava仮想マシンの環境)。void
【TAG】インフォメーション情報を出力するかどうか[true/false]を指定します(初期値:false)。void
setProgram
(String val) 【TAG】シェルファイルを実行する時に引き渡すコマンドを指定します。void
【TAG】実行結果をエラー出力に出力するかどうか[true/false]を指定します(初期値:false)。void
【TAG】実行結果を標準出力に出力するかどうか[true/false]を指定します(初期値:false)。void
setTimeout
(String tout) 【TAG】プロセスの実行処理のタイムアウトを設定します (初期値:SHELL_TIMEOUT[=])。void
setUseBatch
(String flag) 【TAG】BATCHプロセスを実行するのかどうか[true/false]を指定します(初期値:false)。void
setUseStop
(String flag) 【TAG】エラー時に処理を停止するかどうか[true/false]を指定します(初期値:true)。void
【TAG】プロセスの終了を待つかどうか[true:待つ/false:待たない]を指定します(初期値:true[待つ])。void
setWorkDir
(String dir) 【TAG】作業ディレクトリを指定します(初期値:Java仮想マシンの作業ディレクトリ)。toString()
このオブジェクトの文字列表現を返します。クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useStrict, useTag, useXssCheck
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
クラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
フィールド詳細
-
ACT_RUN
action 引数に渡す事の出来る コマンド 実行 "RUN"- 関連項目:
-
ACT_SET
action 引数に渡す事の出来る コマンド 登録 "SET"- 関連項目:
-
ACT_GET
action 引数に渡す事の出来る コマンド 取得 "GET"- 関連項目:
-
ACT_REMOVE
action 引数に渡す事の出来る コマンド 削除 "REMOVE"- 関連項目:
-
-
コンストラクタの詳細
-
ShellTag
public ShellTag()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
doEndTag
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.1.9.0 (2003/05/16) Shell への stdout と stderr の取得設定は廃止。ShellTag では、有効。, 3.3.3.0 (2003/07/09) デバッグ時の表示ロジックを追加。, 6.3.4.0 (2015/08/01) caseKey,caseVal,caseNN,caseNull,caseIf 属性対応, 7.1.0.0 (2020/01/20) useStop 属性を追加
-
release2
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
- 変更履歴:
- 2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加, 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.1.9.0 (2003/05/16) action コマンド追加, 3.3.3.0 (2003/07/09) action コマンドの動きを修正。, 3.6.0.1 (2004/09/29) display 属性を追加, 3.6.1.0 (2005/01/05) timeout 属性を追加, 7.1.0.0 (2020/01/20) useStop 属性を追加
-
setProgram
【TAG】シェルファイルを実行する時に引き渡すコマンドを指定します。- パラメータ:
val
- シェルコマンド- 説明:
- シェルファイルを実行する時に引き渡すコマンド
-
setUseBatch
【TAG】BATCHプロセスを実行するのかどうか[true/false]を指定します(初期値:false)。- パラメータ:
flag
- BATCHプロセスを実行するのかどうか [true:BATCHプロセス/false:EXEファイル]- 説明:
- BATCHファイルの実行と、EXEファイルの実行では、cmd.exe 経由するか どうか、判断が必要です。true(BATCHプロセス)では、cmd.exe 経由で実行、 false(EXEファイル)では、直接実行します。 初期値は、false(EXEファイル)です。
-
setStdout
【TAG】実行結果を標準出力に出力するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
flag
- 実行結果の標準出力 [true:出力する/false:しない]- 説明:
- 実行結果の標準出力を出力するかどうか(初期値:false)
-
setStderr
【TAG】実行結果をエラー出力に出力するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
flag
- 実行結果のエラー出力 [true:出力する/false:しない]- 説明:
- 実行結果のエラー出力を出力するかどうか(初期値:false)
-
setWait
【TAG】プロセスの終了を待つかどうか[true:待つ/false:待たない]を指定します(初期値:true[待つ])。- パラメータ:
flag
- 終了待ち [true:待つ/false:待たない]- 説明:
- プロセスの終了を待つ(true)/待たない(false) (初期値:true)
-
setTimeout
【TAG】プロセスの実行処理のタイムアウトを設定します (初期値:SHELL_TIMEOUT[=])。- パラメータ:
tout
- タイムアウト時間(秒) (ゼロは、無制限)- 関連項目:
- 変更履歴:
- 3.6.1.0 (2005/01/05) 新規追加
- 説明:
- ゼロ(0) の場合は、割り込みが入るまで待ちつづけます。 その場合、確実に終了させる手段を用意しておかないと、いつまで待っても以下の処理が 実行されない(デッドロック)状態になってしまいます。 (初期値:システム定数のSHELL_TIMEOUT[=])。
-
setInfo
【TAG】インフォメーション情報を出力するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
flag
- インフォメーション情報 [true:出力する/false:しない]- 変更履歴:
- 3.1.9.0 (2003/05/16) 新規追加
- 説明:
- インフォメーション情報を出力するかどうか(初期値:false)
-
setDisplay
【TAG】処理結果を画面に表示するかどうか[true/false]指定します(初期値:true)。- パラメータ:
flag
- 処理結果を画面に表示するかどうか [true:出力する/false:しない]- 変更履歴:
- 3.6.0.1 (2004/09/29) 新規追加, 7.1.0.0 (2020/01/20) display 属性で、info,stdout,stderr のすべてをOFFにする。
- 説明:
- // * 処理結果が、異常でない場合のみ、この機能が有効になります。 // * 各種処理を連続で行う場合、最後にエラーが発生したにもかかわらず、 // * 先に正常終了している場合に、不要なメッセージを出すと、紛らわしい為です。 display="false" に設定すると、info,stdout,stderr のすべての出力をOFFにします。 初期値は、true(表示する)です。
-
setAction
【TAG】アクション[RUN/SET/GET/REMOVE]をセットします(初期値:RUN)。- パラメータ:
act
- アクション [RUN/SET/GET/REMOVE]- 関連項目:
- 変更履歴:
- 3.1.9.0 (2003/05/16) 新規追加, 3.5.6.2 (2004/07/05) 文字列の連結にStringBuilderを使用します。, 6.3.4.0 (2015/08/01) Arrays.toString から String.join に置き換え。, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。
- 説明:
- アクションは、HTMLから(get/post)指定されますので、ACT_xxx で設定される フィールド定数値のいづれかを、指定できます。 初期値は、RUN です。 RUN Shellオブジェクトを生成/実行します。(セッションに登録しません。) SET Shellオブジェクトを生成/実行し、セッションに登録します。 GET セッションに登録されている Shellオブジェクトを呼び出します。 REMOVE セッションから、Shellオブジェクトを削除します。 Shellが実行中の場合は強制終了します。
-
setWorkDir
【TAG】作業ディレクトリを指定します(初期値:Java仮想マシンの作業ディレクトリ)。- パラメータ:
dir
- 作業ディレクトリ- 変更履歴:
- 3.3.3.0 (2003/07/09) 新規追加
- 説明:
- シェルを実行する、作業ディレクトリを指定します。 絶対パスで指定することも、相対パスで指定することも出来ます。 相対パスの場合は、ドキュメントベースの物理パスが基準になります。 (そのJSPファイル自身のディレクトリが基準ではありません。) 指定しない場合は、このJava仮想マシンの作業ディレクトリで実行されます。
-
setEnvKeys
【TAG】環境変数のキーをCSV形式で指定します(初期値:現状のJava仮想マシンの環境)。- パラメータ:
keys
- 環境変数のキー- 変更履歴:
- 3.3.3.0 (2003/07/09) 新規追加, 3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用
- 説明:
- シェル実行時の環境変数のキーを、CSVV形式で指定します。 指定がない場合は、現状のJava仮想マシンの環境が引き継がれます。 envVals と対応していなければなりません。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。
-
setEnvVals
【TAG】環境変数の値をCSV形式で指定します(初期値:現状のJava仮想マシンの環境)。- パラメータ:
vals
- 環境変数のキー- 変更履歴:
- 3.3.3.0 (2003/07/09) 新規追加, 3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用
- 説明:
- シェル実行時の環境変数の値を、CSVV形式で指定します。 指定がない場合は、現状のJava仮想マシンの環境が引き継がれます。 envKeys と対応していなければなりません。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。
-
setUseStop
【TAG】エラー時に処理を停止するかどうか[true/false]を指定します(初期値:true)。- パラメータ:
flag
- エラー時停止 [true:する/それ以外:しない]- 変更履歴:
- 7.1.0.0 (2020/01/20) useStop 属性を追加
- 説明:
- エラー時に、以下の処理を停止したい場合に、使用します。 実行結果は、 SHELL.RTN_CODE = 0 : 正常 (ページの残りを評価する。) SHELL.RTN_CODE = 1 : 処理中 (ページの残りを評価する。) SHELL.RTN_CODE = 9 : 取消 (ページの残りを評価する。) SHELL.RTN_CODE = -1 : 異常終了(useStop:true ページの残りの処理を行わない。false:残りを評価する。) が取得できますが、異常終了時に、処理を停止するか、継続処理させるかを指定できます。 互換性の観点から、初期値は、true(エラー時に停止する)です。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-