Java APIについては、「APIドキュメント(Javadoc)」をブラウザヘルプから参照してください。
Studioヘルプから参照すると正しく表示されません。
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 = new ScriptPK("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 |
build.propertiesに記述する場合にはパス区切り文字「\」は「/」に変換して指定してください。
初期状態では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> |