ダウンロード サンプルファイル (6.7 MB)
コントロールクライアントの作成と実行
次に、先ほど作成したコントロールを利用するクライアントを作成します。まずコントロールを利用するには、そのインスタンスを生成しなければなりません。インスタンスを生成するには下のように記述します。ここでは、org.apache.beehive.controls.api.bean.Controlアノテーションをつけた、コントロールBeanクラスを宣言しています。そして、Controlアノテーションの後にプロパティを渡すようにコントロールパブリックインターフェイスで定義したFileInfoアノテーションを入れています。これで、filePath、fileNameのプロパティがコントロールに渡されます。また、コントロールのインスタンスは自動的にインスタンス化されます。
//プロパティをつけてインスタンス生成 @Control @FileInfo(filePath="C:\\tmp",fileName="control_test.txt") private SampleCtrlFile control;
次に、onWriteイベントを受け取って行う処理を記述します。処理のメソッドの前にEventHandlerアノテーションをつけて、以下の表のプロパティを設定します。
| プロパティ名 | 概要 |
field | コントロールのフィールド名 |
eventName | イベントのメソッド名 |
eventSet | SampleCtrlFile.Callback.class(イベントのインターフェイス) |
次のように記述します。これにより、コントロールからクライアントにonWriteのイベントが通知されると、ログを出力する処理を行います。
@EventHandler(field="control",eventSet=SampleCtrlFile.Callback.class,eventName="onWrite") public void HelloMessageHandler(String str){ ctgry.info("onWrite-Event"); }
実装された操作はControlから直接呼び出すことができます。
@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について解説を行います。
参考資料
- Apache Beehive
- IBM DeveloperWorks 『Tigerでのアノテーション 第1回: Javaコードにメタデータを追加する』 Brett McLaughlin 著、2004年9月
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Apache Beehiveの開発を体験する連載記事一覧
-
- Apache Beehiveの開発を体験する(NetUI編)
- 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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 佐藤 真介(サトウ シンスケ)
< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

eventName=