[連載]
初めてのEnhydra

第3回 XMLCアプリケーションの基礎




3.実際にアプリケーションを作成してみる

 それでは実際にJBuilder 4にインストールされているウィザードを使いEnhydraアプリケーションを作成してみます。まずはサンプルのアプリケーションを動かしてみましょう。

 ここでは、Enhydra Super-Servletウィザードを使います。Enhydra Super-Servletウィザードについて忘れてしまった方は、第1回「Enhydraにチャレンジ!」に説明がありますので読み返してください。

 サンプルアプリケーションを実行してみる

 まずは、JBuilderにEnhydraのライブラリを追加します。

■JBuilderにライブラリを追加する

(1)メニューの[ツール(T)|ライブラリ設定(L)]を選択し[ライブラリ設定]ウィンドウを表示します

JBuilder4のメニューからライブラリを追加する作業を行う

(2)[新規]ボタンをクリックし、[新規ライブラリウィザード]を表示します。名前を「Enhydra」に、場所を「JBuilder」にして[追加]ボタンをクリックします

JBuilder4の新規ライブラリウィザードを操作する

(3)$ENHYDRA_HOME/libディレクトリ($ENHYDRA_HOMEはEnhydraをインストールしたディレクトリ)を選択し[OK]をクリックします

Enhydraのライブラリが存在するディレクトリを指定する

(4)[新規ライブラリウィザード]を[OK]をクリックして閉じます。[ライブラリ設定]に「Enhydra」が追加されていることを確認して[OK]をクリックしてウィンドウを閉じます

Enhydraのライブラリが追加されたことを確認する

 次に、Enhydra Super-Servletウィザードを使って、ビルドの前段階の準備をします。

■Enhydra Super-Servletウィザードを使う

(1)メニューから[ファイル|新規プロジェクト]を選択して、プロジェクトウィザードを実行します

(2)[プロジェクトウィザード - ステップ1/3]でプロジェクト名を「first_ess」と書き換えて終了をクリックします

デモアプリケーションの「Chat」を起動してみる

(3)[ファイル|新規]をクリックしてオブジェクトギャラリのEnhydraタブを選択し「Enhydra Super-Servlet」を選択して「OK」をクリックします

デモアプリケーションの「Chat」を起動してみる

(4)Enhydra Super-Servletウィザードが起動しますのでデフォルトのまま進み、最後のウィザードで[終了]をクリックします

何も設定しないで[次へ]ボタンを押してウィザードを進める

最後に[終了]をクリックする

このダイアログが表示されたら[了解]をクリックして閉じる

(5)プロジェクトペインにいくつかのファイル/フォルダが追加され、内容ペインにビルドの手順が表示されます

JBuilderのプロジェクトペインにビルドの手順が表示されたところ

 


 ウィーザードでビルドの準備ができました。いよいよビルドしてみます。

■ビルドする

(1)メニューから[ウィザード|XMLC Compiler]を選択し、XMLC Compilerを起動します。[Selected Pages to Compile:]に「Welcome.html」があることを確認して[Compile]ボタンをクリックします

XMLC Compilerを起動する

(2)コンパイルが完了したら、[Close]ボタンをクリックしてXMLC Compilerを閉じます

XMLC Complierがコンパイル結果を表示しているところ

(3)[プロジェクト|プロジェクトのメイク]を実行します。[ウィザード|Enhydra Deployment]を実行します。ここではデフォルトのまま[Deploy]ボタンをクリックします

アプリケーションの配布を行う

(4)完了したらウィンドウを閉じます

アプリケーションの配布が完了したところ。ログが出力される。

(5)[実行|プロジェクトの実行]でEnhydra Multiserverが起動します。メッセージペインに「・・・HelloXMLC,INFO: All rights reserved.」と表示されたらブラウザを起動し「http://localhost:9000」にアクセスします

Enhydra Multiserverを起動する

(6)実行結果が以下のように表示されることが確認できたらEnhydra MultiServerを停止させます

ブラウザで「http://localhost:9000」にアクセスしたところ


矢印の部分のボタンをクリックしてEnhydra MultiServerを停止する

 


 “Hello XMLC”を作成してみる

 次に、前節のアプリケーションの内容を書き換えてみましょう。前節の「■Enhydra Super-Servletを使う」と同様の手順で新規プロジェクトを作成し、プロジェクト名を「HelloXMLC」にし「Enhydra Super-Servlet」を新規で作成します。

■Welcome.htmlを修正する

(1)presentationフォルダのWelcome.htmlを開きソースを表示します

Welcome.htmlを表示したところ

(2)IDタグを追加します。14行目を以下のように書き換えます

修正前

<h2>A Simple Web Application</h2>


修正後

<h2><SPAN ID="SubTitle">A Simple Web Application</SPAN></h2>

(3)[ウィザード|XMLC Compiler]を実行しWelcome.htmlをコンパイルします。[ウィザード|Enhydra Deployment]を実行します

 ここまでの操作で、Welcome.htmlのコンパイルが終了しました。次に、presentationフォルダのWelcomePresentation.javaを以下のように修正します。

/*
* HelloXMLC
*
* Enhydra super-servlet presentation object
*
*/

package helloxmlc.presentation;

// Enhydra SuperServlet imports
import com.lutris.appserver.server.httpPresentation.HttpPresentation;
import com.lutris.appserver.server.httpPresentation.HttpPresentationComms;

import com.lutris.appserver.server.httpPresentation.HttpPresentationExcept
ion;
import com.lutris.appserver.server.httpPresentation.HttpPresentationOutput
Stream;
import com.lutris.appserver.server.httpPresentation.HttpPresentationRespon
se;

// Standard imports
import java.io.IOException;
import java.util.Date;
import java.text.DateFormat;

public class WelcomePresentation implements HttpPresentation {

  public void run(HttpPresentationComms comms)
    throws HttpPresentationException, IOException {

    HttpPresentationOutputStream out;
    WelcomeHTML welcome;
    String now;
    byte[] buffer;

    welcome = (WelcomeHTML)comms.xmlcFactory.create(WelcomeHTML.class);
    now = DateFormat.getTimeInstance(DateFormat.SHORT).format(new Date());
    welcome.getElementTime().getFirstChild().setNodeValue(now);
    welcome.setTextSubTitle("Hello XMLC !!"); // <--この行を追加
    buffer = welcome.toDocument().getBytes();
    comms.response.setContentType( "text/html" );
    comms.response.setContentLength( buffer.length );
    out = comms.response.getOutputStream();
    out.write(buffer);
    out.flush();
  }

}

 実行結果は以下の画面のようになります。

実行結果

 いかがでしょうか? 無事に動作しましたでしょうか。もしうまくいかない場合は大文字・小文字の区別を確認してみてください。Javaは大文字・小文字を別物として扱います。当たり前といえばそうなのですが、意外と気付きにくい点です。ご確認ください。

 この例で、XMLCを使ったPOの開発のイメージが何となくですが浮かんできたのではないでしょうか。物は試しで、まったく別のデザインのHTMLファイルを用意して、同名のWelcome.htmlにしてみてください。そしてid属性だけ元の例と合わせてWelcomePresentation.javaには手を加えずに実行してみてください。これがつまりプログラミングとデザインの正しい分離の状態です。HTMLファイルをまったく別個に作成しても、id属性によってホットスポットの名称だけを合わせてやればプログラムの変更は不要です。これなら普通のHTML以外にも、サイトを携帯電話やゲーム機などいろんなブラウザに対応させる場合にも、ロジック部分を完全に切り離して開発することが可能です。これがXMLCの最大のメリットなのです。

3/5
4.インタラクティブなFormの作成

初めてのEnhydra(第3回)
  1.Enhydraの最新動向
日本語版Lutris Enhydra 3.5が出荷される
  2.XMLCとは何か
Enhydraのアプリケーションフレームワーク
XMLCが行うこと
3.実際にアプリケーションを作成してみる
サンプルアプリケーションを実行してみる
“Hello XMLC”を作成してみる
  4.インタラクティブなFormの作成
入力した値を表示するアプリケーションを作成する
  5.コンポーネント化で開発効率を上げる
ElementGeneratorの作成



連載記事一覧

 



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間