特集:Apache Beehiveとは何か――BEAがOSSで築くSOA基盤dev Java(3/7 ページ)

» 2004年11月08日 13時00分 公開
[阿島哲夫(カサレアル),ITmedia]

コントロール実装クラスの作成

 コントロール実装クラスは、コントロールパブリックインタフェースに定義された操作を実装するクラスだ。

 ファイルは拡張子.jcsと作成するが、実体は通常のJavaクラスとなる。クラスはコントロールパブリックインタフェースを実装した(implements宣言した)クラスとして作成する。また、@org.apache.beehive.controls.api.bean.ControlImplementation とAnotationしておく必要がある。そして、コントロールパブリックインタフェースで定義したメソッドを実装するのだ。

リスト2■HelloImpl.jcs
package hellocontrol;

import org.apache.beehive.controls.api.bean.*;

@ControlImplementation
public class HelloImpl implements Hello
{
public String hello()
{
return "Hello, World!";
}
}

コントロールBeanクラスの生成

 Beehiveから提供されるコントロールコンパイラを使って、コントロールBeanクラスを生成する。

 コントロールコンパイラはAntタスクとして提供されているので、Antの使用が必須だ。コントロールコンパイラを実行すると、コントロールパブリックインタフェース + Bean.java という名前のソースコードが生成される。このコントロールBeanクラスは、通常のJavaBeansと同様にインスタンス化し、メソッドを呼び出して使うことができる。次の例はJSPでの使用例だ。

リスト3■index.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0" prefix="netui-data"%>
<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0" prefix="netui-template"%>
<netui:html>
<head>
<title>Web Application Page</title>
<netui:base/>
</head>
<netui:body>
<p>
<jsp:useBean class="hellocontrol.HelloBean" id="helloBean" scope="session"/>
<%= helloBean.hello() %>
</p>
</netui:body>
</netui:html>

サンプルアプリケーションの実行

 Apache Beehiveプロジェクトからもサンプルアプリケーションが提供されている。

 Beehive Controls Tutorialページで手順が解説されているが、ドキュメント記載およびサンプルアプリケーションのコードに不備があるため、Webサイトで紹介されている手順では動作しないので以下に修正した手順を紹介する。

1. JDK1.5(J2SE5.0)のダウンロードとインストール

 ここからJDKをダウンロードし、インストールする。C:\jdk1.5.0 にインストールするものとして手順を紹介する。

2. SVN (Subversion Source Control) のダウンロードとインストール

 SVNをダウンロードしてインストールする。Windowsの場合はインストーラ付きの拡張子.exeのものを使うのが簡単でよい。

3. Beehive のダウンロードとインストール

 ApacheのサイトからSVNを使って最新版をダウンロードする。コマンドプロンプトを表示し、ダウンロードするディレクトリ(任意。この例では、C:/beehive-src)に移動する。そして、コマンドプロンプトから次のように入力する。

svn checkout http://svn.apache.org/repos/asf/incubator/beehive/trunk/


4. Antのインストール

 apache-ant-1.6.2-bin.zipをダウンロードし、任意のディレクトリ(ここでの例では、C:\apache-ant-1.6.2)に展開する。

5. 準備

 コマンドプロンプトから、次のように入力する。

 set JAVA_HOME=C:\jdk1.5.0 (←JDKインストールディレクトリを指定)
 set BEEHIVE_HOME=C:\beehive-src\trunk (←Beehiveダウンロードディレクトリ\trunk を指定)
 cd C:\beehive-src\trunk (←Beehiveダウンロードディレクトリ\trunk に移動)
 beehiveEnv.cmd
 set ANT_HOME=C:\apache-ant-1.6.2 (←Antインストールディレクトリを指定)
 set Path=%ANT_HOME%\bin;%Path%
 ant bootstrap

 以後、動作確認までこのプロンプト上で作業することをおすすめする。いったんコマンドプロンプト表示を終了してしまった場合は、もういちどこの手順を行う必要がある。

6. Beehive のコンパイル

 コマンドプロンプトから、次のように入力する

 ant deploy

7. ソースディレクトリの作成

 C:/beehive-src/trunk/installed/jakarta-tomcat-5.0.25/webapps/ディレクトリに、control_tutorialディレクトリを作成する。

 続けて、C:/beehive-src/trunk/installed/jakarta-tomcat-5.0.25/webapps/control_tutorial/ディレクトリに、hellocontrolディレクトリを作成する。

8. 必要なリソースのコピー

 コマンドプロンプトから、次のように入力すると、必要なライブラリや設定ファイルのコピーが行われる。

ant -f C:\beehive-src\trunk\netui\ant\webappTemplate.xml -Dwebapp.dist.dir=C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial

9. コントロールパブリックインタフェース、コントロール実装クラスの作成

 C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial\WEB-INF\src\ディレクトリにhellocontrolディレクトリを作成し、このディレクトリに前述したコントロールパブリックインタフェース(リスト1)、コントロール実装クラス(リスト2)を作成する。

10.コントロールコンパイラの実行

 コマンドプロンプトから、次のように入力する。

 終了すると、C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial\WEB-INF\.tmpbeansrc\hellocontrol\ディレクトリに、コントロールBeanクラス(HelloBean.java)が生成され、コンパイルまで実行される。

ant -f C:\beehive-src\trunk\test\ant\buildWebapp.xml build.webapp -Dwebapp.dir=C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial

11. JSPページの準備

 C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial\ ディレクトリにBeanを呼び出すJSPページを用意する(リスト3)。

12. 実行

 Tomcatを起動し、http://localhost:8080/control_tutorial/index.jsp にアクセスする。画面上に"Hello, World!"と表示される。

実行結果

SVN(Subversion Source Control)
 SVNは、CVS同様の機能を持つオープンソースのバージョン管理システムだ。実現できる機能はCVSとほぼ同じだが、ファイルやディレクトリのリネーム、移動に対応しているのが大きな特徴。CVSではファイルのリネームを行うと実質は削除・新規登録と同じ操作になってしまうが、SVNではリネームしても同一ファイルとして履歴管理を続けることが可能だ。Apache Software Foundationでも、StrutsプロジェクトなどでCVSに替わって採用されている。

 「NetUI」は、コントロールと並んで、Beehiveプロジェクトの中核をなすプロジェクトだ。はじめはWebLogic Workshop8.1組み込みのWebアプリケーションフレームワーク"Java ページフロー"として開発された。

 NetUIはWebアプリケーションの画面遷移(ページフロー)を簡単に構築するための、Strutsベースのフレームワークである。Strutsと比較した場合、Struts設定ファイルの記述が不要であることが有利な点といえるだろう。

 また、NetUIは、Strutsを拡張して作られており、Strutsの持つ機能は全く失われていない。つまり、従来のStrutsの機能をそのまま利用することも可能なのだ。NetUIが直接サポートしていないStrutsの機能を利用することもできるし、Strutsで動作していたアプリケーションをNetUIに移行し、以前のアプリケーションの機能はそのままにNetUIで新しい機能を追加することも可能だ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ