SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Apache Beehiveの開発を体験する

Apache Beehiveの開発を体験する(コントロール作成編)

Apache Beehiveによるコントロールの作成と利用


  • X ポスト
  • このエントリーをはてなブックマークに追加

コントロールクライアントの作成と実行

 次に、先ほど作成したコントロールを利用するクライアントを作成します。まずコントロールを利用するには、そのインスタンスを生成しなければなりません。インスタンスを生成するには下のように記述します。ここでは、org.apache.beehive.controls.api.bean.Controlアノテーションをつけた、コントロールBeanクラスを宣言しています。そして、Controlアノテーションの後にプロパティを渡すようにコントロールパブリックインターフェイスで定義したFileInfoアノテーションを入れています。これで、filePathfileNameのプロパティがコントロールに渡されます。また、コントロールのインスタンスは自動的にインスタンス化されます。

「SampleServlet.java」のソース一部
//プロパティをつけてインスタンス生成
@Control @FileInfo(filePath="C:\\tmp",fileName="control_test.txt")
private SampleCtrlFile control;

 次に、onWriteイベントを受け取って行う処理を記述します。処理のメソッドの前にEventHandlerアノテーションをつけて、以下の表のプロパティを設定します。

EventHandlerアノテーションのプロパティ
プロパティ名概要
fieldコントロールのフィールド名
eventNameイベントのメソッド名
eventSetSampleCtrlFile.Callback.class(イベントのインターフェイス)

 次のように記述します。これにより、コントロールからクライアントにonWriteのイベントが通知されると、ログを出力する処理を行います。

「SampleServlet.java」のソース一部
@EventHandler(field="control",eventSet=SampleCtrlFile.Callback.class,
eventName="onWrite")
public void HelloMessageHandler(String str){
    ctgry.info("onWrite-Event");
}

 実装された操作はControlから直接呼び出すことができます。

「SampleServlet.java」のソース一部
@Override
protected void service(HttpServletRequest request,
    HttpServletResponse response) throws
    ServletException, IOException {

    String hogehoge = null;
    
    try {
        //write
        control.write("hogehoge");
        
        //read
        hogehoge = control.read();
    
    } catch (Exception e) {
        e.printStackTrace();
        throw new ServletException();
    }
    
    response.setContentType("text/html; charset=Shift_JIS");
    PrintWriter out = response.getWriter();
    out.println("<html><body>ファイルから"+hogehoge+
        "文字列を読み込みました。</body></html>");
    out.flush();
}

Antにより実行

 次のように実行することにより、warファイルを指定された場所に作成します。必要に応じて「build.xml」を修正して、デプロイ先を変更してください。

>cd BeehiveConrolSample\samples\sample
>ant clean deploy

 作成されたwarをTomcat上で動かし、トップ画面のリンクをクリックするとコンロールが動作します。以下が画面キャプチャです。

画面キャプチャ
画面キャプチャ

まとめ

 本稿では、Apache Beehiveの概要とコントロールの詳細について解説しました。コントロールをどのように作成し、ビルドするのか? また、クライアントではどのように使うのかが大まかには理解できたでしょうか? 次回はApache BeehiveのNetUIについて解説を行います。

参考資料

  1. Apache Beehive
  2. IBM DeveloperWorks 『Tigerでのアノテーション 第1回: Javaコードにメタデータを追加する』 Brett McLaughlin 著、2004年9月

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Apache Beehiveの開発を体験する連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 佐藤 真介(サトウ シンスケ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/378 2006/10/11 19:38

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング