2018-05-25 プライバシーポリシーを改訂いたしました。

作成するもの

『3秒に1回、文字を標準出力する』

準備

* Java6(JDK)のインストール http://java.sun.com/javase/ja/6/download.html
* 開発環境Eclipse
* ApacheCamelのZIPダウンロード http://camel.apache.org/download.html

ApacheCamelの解凍

自由なフォルダ(例えばlib)を作って、zipを解凍します。

Camelをユーザーライブラリに設定

Eclipseのユーザーライブラリを設定すると簡単に複数のjar(ライブラリ)を使うことができるようになります。 さきほど解凍した次のjarファイルをEclipseのユーザーライブラリに設定します。 多くのjarファイルがCamelに入っていますが下記のjar(ライブラリ)で最低限の動作が可能です。 下記のjarファイルをユーザーライブラリ"camel"という名前で作成します。

camel-core-2.10.1.jar
log4j-x.x.x.jar
slf4j-api-x.x.x.jar
slf4j-log4j12-x.x.x.jar

(x.x.xはバージョン番号になります)

詳細は ・・・ ユーザーライブラリの設定

Javaプロジェクトの作成

Eclipseでhelloプロジェクトを作成します。

プロジェクトを作成したら先ほど設定した"camel"をビルドパスに設定します。

詳細・・・helloプロジェクトの作成

実装

Camelメイン実装

  1. package ex.hello;
  2. import org.apache.camel.builder.RouteBuilder;
  3. import org.apache.camel.main.Main;
  4. public class HelloCamelMain {
  5. public static void main(String args[]) throws Exception {
  6. // Camel本体
  7. Main main = new Main();
  8. // Camelに「ルート」を登録
  9. main.addRouteBuilder(new RouteBuilder() {
  10. @Override
  11. public void configure() throws Exception {
  12. from("timer:timerName?period=3000") // タイマートリガー
  13. .process(new OutputHelloProcess()); // Processorクラスを呼び出す
  14. }
  15. });
  16. // Camelの起動
  17. main.run();
  18. }
  19. }

OutputHelloProcess クラスの実装

  1. package ex.hello;
  2. import org.apache.camel.Exchange;
  3. import org.apache.camel.Processor;
  4. // .process(xxx)の場合は「Processorの実装クラス」を呼び出す事ができる
  5. public class OutputHelloProcess implements Processor{
  6. // .process(xxx)が実行されると、このprocessメソッドが呼び出される
  7. @Override
  8. public void process(Exchange exchange) throws Exception {
  9. // 標準出力で"Hello"を出力する
  10. System.out.println("Hello");
  11. }
  12. }

詳細は・・・初めてのCamel実装

実行

実行すると、コンソールには下記のように出力されます。Helloが3秒に1回出力され続けます。

log4j:WARN No appenders could be found for logger (org.apache.camel.main.MainSupport).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Hello
Hello
Hello
Hello

詳細・・・helloプロジェクトの起動