検索
連載

第5回 Ruby on Geronimoを試す【前編】Apacheの戦士Geronimoが持つ実力(2/2 ページ)

Geronimoでオープンソースミドルウェアの柔軟な統合を実現できるなら、独自のミドルウェアも統合できるはず! 今回は、統合の実例として、近年注目を集めるRubyのランタイム環境をGeronimo上に統合してみます。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

HelloGBean

 次にHelloGBeanの冒頭です(リスト3)。HelloGBeanもGBeanLifcycleのほかにHelloを実装しています。これはクライアントコードから呼ばれるインタフェースです。ちなみに、GBeanであることを知らなくても良いようにJNDI*経由で取得できるように15行目でContextにバインドしています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

リスト3 HelloGBeanの冒頭(一部省略)

 さて、ここで注目すべきは、5、8、11行目です。これでHelloGBeanを生成するときにInvokerインスタンスが必要であり、第2引数として渡されることを示しています。ほかに6行目で「objectName」、7行目で「kernel」という属性が現れていますが、これは何でしょうか? 実はGeronimoでは、magic属性というものが定義されており、「objectName」は自分自身の(JMX仕様の)ObjectNameを表す文字列、「kernel」はGeronimoのカーネルをそれぞれ取得できる属性です。この属性をプランファイルに書く必要はありません。HelloGBean用のプランファイルはリスト4のようになります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

リスト4 HelloGBean.plan

 3行目では、HelloGBeanがRubyGBeanに依存するので親子関係を定義しています。次に注目すべきところとして、6〜13行目があります。これはRubyGBeanのObjectNameを書き下したものです。

HelloServlet

 ここまでできれば、後はクライアントコードです。これはHelloServlet(リスト5)でHelloインタフェースをlookupするようにしてみました。そのため、geronimo-application.xml(リスト6)、geronimo-web.xml(リスト7)でHelloGBean用のコンフィギュアを親に持つようにしています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

リスト5 HelloServlet.java

<application ... configId="sample.enterprize/sample.enterprize" parentId="configure/helloGBean">


リスト6 geronimo-application.xml

<web-app ... configId="sample.web/sample.web" parentId="configure/helloGBean">


リスト7 geronimo-web.xml

次回は

 いよいよ次回が本連載の最終回となります。連載第3回、第4回、そして今回解説した内容に基づいて実際に手を動かし、挙動を確かめてみましょう。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

このページで出てきた専門用語

JNDI

Java Naming and Directory Interface。Javaでネーミングおよびディレクトリ機能を利用できるようにするAPI。


本記事は、オープンソースマガジン2006年5月号「注目のJ2EEサーバー Apacheの戦士Geronimoが持つ実力」を再構成したものです。


著者紹介

日本アイ・ビー・エム システムズエンジニアリング株式会社

万仲龍樹・中山清喬・杉田直哉・津田嘉孝

日本アイ・ビー・エム システムズ・エンジニアリング株式会社(ISE)は、日本アイ・ビー・エムグループにおけるSE技術者の専門家集団として1992年7月に設立された。

発足以来、IBM製品を中心とした難易度の高い複雑なシステム構築や先進技術の適用場面において、卓越したITスキルによりお客様と開発現場を支援してきた。

近年は、仮想化技術・グリッドコンピューティング・Web 2.0・オープンソースソフトウェア等々の先進技術分野での支援も展開している。


前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る