以下のHelloWorldプログラムでは、コマンドとWebの両方で同じプログラムが実行できた。
一方で、コマンドからのみ起動したいプログラムを記述したい場合もある。
HelloWorld.sdoc
package org.goldenport.g3.app
import org.goldenport.g3._
import org.goldenport.g3.messages._
class HelloWorld extends G3Application {
  port("/") agent {
    case _ => "Hello World"
  }
}
そのような場合に使用するのがstartチャネルである。startチャネルを使用したHelloWorldプログラムが以下のHelloCli.scala。
startチャネルから"Hello World"を出力するエージェントを呼び出している。
HelloCli.scala
package org.goldenport.g3.app
import org.goldenport.g3._
import org.goldenport.g3.messages._
class HelloCli extends G3Application {
  start agent {
    case _ => "Hello World"
  }
}
実行
それでは、org.goldenport.g3.app.HelloCliを実行してみよう。HelloCliは、g3フレームワークに同梱しているので直接実行することができる。
以下のように-g3.applicationスイッチでg3アプリケーションorg.goldenport.g3.app.HelloCliを指定して実行する。引数にポート「/」は指定していない。
実行の結果、"Hello World"がコンソールに出力された。
$ g3 -g3.application:org.goldenport.g3.app.HelloCli Hello

0 件のコメント:
コメントを投稿