class ScriptRunnerTest { public static void main (String[] args) throws Exception { // ScriptRunnerConnectionManager のインスタンスの取得 ScriptRunnerConnectionManager manager = ScriptRunnerConnectionManager.getInstance(); // ScriptRunnerConnectionFactory の生成 ScriptRunnerConnectionFactory factory = manager.createConnectionFactory(); // ホスト名の設定 factory.setHost("127.0.0.1"); // ポート番号の設定 factory.setPort(7700); // 実行ユーザの設定 factory.setUser("test"); // 実行ユーザのパスワードの設定 factory.setPassword("test"); // HTTPS通信を行うかどうかの設定 factory.setSSLEnabled(false); ScriptRunnerConnection conn = null; try { // ScriptRunnerConnection の生成 conn = factory.newConnection(); // ScriptRunnerParam の作成 ScriptRunnerParam param = new ScriptRunnerParam(); // ScriptPK の作成 // 第一引数は「サービス名」, 第二引数は「スクリプト名」 // デフォルトのサービス名の形式は「ユーザ名@プロジェクト」となります。 ScriptPK pk = ScriptPK.ofDeployedProject("test@project", "script"); param.setScriptPK(pk); // 引数の作成 // 引数を渡さない場合には必要ありません。 Map<String, Object> input = new HashMap<String, Object>(); // 文字列型の入力変数を設定 // String 型を取ります input.put("in.string", "test"); // 数値型の入力変数の設定 // Integer 型を取ります input.put("in.integer", Integer.valueOf(111)); // 10 進数型の入力変数の設定 // BigDecimal 型を取ります input.put("in.decimal", new BigDecimal(222)); // 日付型の入力変数の設定 // Date 型を取ります input.put("in.date", new Date()); // 真偽値型の入力変数の設定 // Boolean 型を取ります input.put("in.boolean", Boolean.valueOf("true")); // バイナリの入力変数の設定 // byte[] 型を取ります input.put("in.binary", new byte[]{0x42, 0x43}); // XML 型の入力変数の設定 // XML 文書の文字列表現を取ります input.put("in.xml", "<?xml version=\"1.0\"?><root />"); param.setInput(input); // オプションの作成 // オプションを設定しない場合には必要ありません。 ScriptRunnerOption option = new ScriptRunnerOption(); option.setType(ExecutionTypes.TYPE_PRODUCTION); // 本番用種別で実行。省略した場合は ExecutionTypes.TYPE_DEFAULT で実行。 // option.setType("<ユーザ指定種別>"); // ユーザ指定種別で実行。指定した種別を直接指定してください。 option.setEnableTypeSwitch(false); option.setEnableXMLLog(true); option.setLogLevel("DEBUG"); param.setOption(option); // 実行および結果の取得 ScriptRunnerResult result = conn.execute(param); // 終了ステータスの取得 System.out.println("Exit Status: " + result.getExitStatus()); if (result.isSucceeded()) { // 処理が成功の場合 Map output = result.getResultData(); for (Object key : output.keySet()) { Object value = output.get(key); if (value == null) { System.out.println(key + "(null): " + value); } else { System.out.println(key + "(" + value.getClass().getName() + "): " + value); } } } else { // 処理が失敗の場合 for (Failure f = result.getFailure(); f != null; f = f.next()) { System.out.println(f.toString()); } } } finally { if (conn != null) conn.close(); } } }
入力変数の型 | 設定できるJavaの型 | 備考 |
---|---|---|
文字列型 | java.lang.String | |
整数型 | java.lang.Integer | |
10進数型 | java.math.BigDecimal | |
日付/時間型 | java.util.Date | |
真偽値型 | java.lang.Boolean | |
バイナリ型 | byte[] | |
XML型 | byte[]もしくはjava.lang.String |
キー | 値 | 説明 | 備考 |
---|---|---|---|
TYPE | - | 実行時の種別を指定します。 | |
default | "デフォルト"種別で実行します。 TYPEが指定されなかった場合も"デフォルト"で実行します |
||
test | "テスト用"種別で実行します。 | ||
production | "本番用"種別で実行します。 | ||
<ユーザ指定種別> | サービス登録時、グローバルリソース作成時にユーザが任意で指定した種別で実行します。 | ||
ENABLE_TYPE_SWITCH | - | 指定した種別のグローバルリソースが存在しなかった場合、種別を切り替えて再検索するかどうかの ON/OFF を設定します。 | |
true | 指定した種別のグローバルリソースが存在しなかった場合、"デフォルト"種別で再検索します。 | ||
false | 指定した種別のグローバルリソースが存在しなかった場合、エラーとします。 ENABLE_TYPE_SWITCH が省略された場合は false として動作します。 |
||
ENABLE_XML_LOG | - | XML ログの ON/OFF を設定します。 | |
true | XML ログを出力します | ||
false | XML ログを出力しません(既定値) | ||
LOG_LEVEL | - | ログレベルを設定します。 | |
NOTICE | 重要なログのみを出力するログレベル(既定値) | ||
INFO | 運用時推奨のログレベル | ||
FINFO | 開発時推奨のログレベル | ||
FINEST | より詳細にログを出力するログレベル | ||
DEBUG | 非常に詳細なログを出力するログレベル |
出力変数の型 | 設定できるJavaの型 | 備考 |
---|---|---|
文字列型 | java.lang.String | |
整数型 | java.lang.Integer | |
10進数型 | java.math.BigDecimal | |
日付/時間型 | java.util.Date | |
真偽値型 | java.lang.Boolean | |
バイナリ型 | byte[] | |
XML型 | byte[]もしくはorg.w3c.dom.Document |
|
キー | 説明 | 備考 |
---|---|---|
sun.net.client.defaultReadTimeout | スクリプト実行後、スクリプトから終了ステータスが返ってくるまでの待ち時間です。 |
|
REM 待ち時間10分でタイムアウトを設定 java -Dsun.net.client.defaultReadTimeout=60000 -cp %CP%;. ScriptRunnerTest |
<target name="execute"> <java classname="ScriptRunnerTest" fork="yes" classpathref="class.path"> <classpath> <pathelement path="." /> </classpath> <!-- 待ち時間10分でタイムアウトを設定 --> <jvmarg value="-Dsun.net.client.defaultReadTimeout=60000"/> </java> </target> |