Geronimoアプリケーション・サーバーにデータベースを接続する3つの方法

GeronimoでJDBCデータ・ソースを設定する

Geronimoで書かれたWebアプリケーションにデータベースを接続する必要がありますか? Geronimoはまだ歴史が浅いですが、モジュラーに、そして非常にうまく構成されています。Geronimoアプリケーション・サーバーにデータベースを接続するには、3つの方法があります。それぞれの方法では、別々の種類のJDBC(Java™ Database Connectivity)データ・ソースを作ります。この記事に含まれるアプリケーション例とダウンロード可能なEclipse IDEプロジェクトを使って、アプリケーションを接続する方法や、GeronimoでデプロイされたJDBCコネクション・プールを通して通信する方法を学んでください。

Neal Sanche (neal@nsdev.org), Java developer and author

Neal Sancheは、最近Microsoft® .NETの世界に上陸したJava開発者として、居心地の良い自分の過去のルーツと格闘しています。これまでに、幾つかの商用J2EEアプリケーションと、スタンドアローンのJavaアプリケーションを経験しています。時間がある時には音楽を書き、写真を撮り、技術記事を書いています。その幾つかの例を、彼のWebサイトで見ることができます。連絡先はneal@nsdev.orgです。



2005年 6月 21日

Apache Geronimoアプリケーション・サーバーにJDBCデータ・ソースを設定するためには、下記が必要です。

  • 少なくともGeronimo のM3(Milestone 3)リリースを備えたサーバー。Geronimoをダウンロードするには、参考文献にあるリンクを見てください。
  • JSPやタグ・ライブラリー、デプロイメント記述子(deployment descriptor)、Webアプリケーションを.warファイルにパッケージする方法など、J2EEの概念に関する多少の知識。(これらの話題の大部分については、アプリケーション例を開発しながら解説します。ですから、Java™によるWebアプリケーション開発に慣れていない人でも、説明を追うことができるはずです。)
  • 多少なりともデータベース・サーバーを実行した経験。この記事では、データベースへのアクセスにMySQLを使う方法の詳細を説明しますが、この記事の例を皆さんの好きなデータベースで実行するためには、データベース・サーバーやJDBCドライバーは任意のものに置き換えられることに注意してください。

Geronimoアプリケーション・サーバーにデータベースを接続するには、下記の3つの方法があります。

  • 多くのアプリケーションで使えるように、グローバルな、サーバー全体に渡るデータ・ソース作る。
  • JDBCコネクション・プールを、単一デプロイされた企業アプリケーションの中に埋め込む。ただし、この方法を使う場合には、アプリケーションは.earファイルとしてバンドルされている必要があります。
  • アプリケーションのどの部分がデータベースにアクセスできるかに関して、キメ細かい制御ができるような、モジュール・スコープを持ったJDBCデータ・ソースを作る。

現在では、モジュール・スコープでデータベースにアクセスできるのは、Webアプリケーションのみです。しかしGeronimoチームは、実際の1.0に近いリリースで、他のタイプのアプリケーション・モジュールでもモジュール・スコープのアクセスが動作するように議論を行ってきています。

この記事では、Geronimoアプリケーション・サーバーにデータベースを接続するための方法として上記3つのすべてを取り上げ、さらに、こうした概念を使用したアプリケーション例も取り上げています。今後の記事では、J2EEスタックをさらに活用するためにアプリケーション例を拡張するかも知れませんが、今のところは、Webアプリケーション(サーブレットとJSPレイヤー)と、J2EEスタックのJDBCコネクター・レイヤーのみに限定することにします。

デプロイメント計画(Deployment plan)

Geronimoは柔軟なアプリケーション・サーバーであり、様々な多くのアプリケーション・コンポーネントをホストすることができます。Geronimoは、アプリケーションのどの部分をどこに振り向けるかをデプロイメント・システムが判断できるようにするために、デプロイメント計画を使います。J2EE仕様では、デプロイメントの詳細の一部を、アプリケーション・サーバーのプロバイダーに定義させるようにしていますが、Apache Geronimoチームでは現在、利用可能な部分や、その部分の構成方法やデプロイ方法を、デプロイメント計画を使ってサーバーに伝えるのです。

Webアプリケーションの場合では、デプロイされた .warファイルが、WebアプリケーションのWEB-INFディレクトリーにweb.xmlファイルと共に置かれる、geronimo-jetty.xmlと呼ばれるデプロイメント計画を含んでいます。Geronimoサーバーは、このデプロイメント計画によってアプリケーションの最終的な詳細、つまりWebアプリケーションのコンテキスト・ルート(ユーザーのブラウザーにタイプ入力する際の、アプリケーションに対するURLのパス部分)は何か、そしてアプリケーションが必要とする全リソース参照などを知るのです。これに関しては、Webアプリケーションの例を見て行く中で、もっと明確になるでしょう。XML Schemaの定義言語に慣れている人であれば(私達は皆、慣れているはずですよね?)、$geronimo-root$/schema/geronimo-jetty.xsdファイルを見たことがあるでしょう。このファイルを見ると、デプロイメント計画の中にどんなものが入るのかに関して、多少の感覚が分かるでしょう。また、いつの日か全てのXMLエディターがXML Schemaをサポートするようになった時には、XMLエディターのガイドに従ってさえいればXML Schemaを満足する完全なXMLファイルが作れるようになるでしょう。ただし今のところは、少しばかりスキーマの読み方を学ぶ必要があります。

企業アプリケーションのモジュールにも、同じようにデプロイメント計画を使うことができます。こうしたモジュール(.earファイルの中にパッケージされています)は、META-INFディレクトリーの中で、application.xmlファイルと並んでgeronimo-application.xmlデプロイメント計画を持つことになります。geronimo-application.xsd XML schemaファイルを見ると、このデプロイメント計画によってconfigIdやparentId、アプリケーション名、依存関係などを設定できることが分かるでしょう。アプリケーションをデプロイした時に、正しく実行するために必要なものをアプリケーション・サーバーがロードできるようにする上で、依存関係は有用です。geronimo-application.xmlについては、この記事の後の方で、さらに詳しく見ることにします。


グローバルなJDBCデータ・ソースを作る

Geronimoサーバー内の複数のアプリケーションが利用するグローバルなデータ・ソースを作るためには、デプロイメント計画を作り、サーバーの中に正しくデプロイする必要があります。そのためには、XMLファイルを作ります。このXMLファイルによって、アプリケーション・コンポーネントが作るものの詳細や、そのコンフィギュレーション・パラメーターはどうあるべきか、コンフィギュレーションが持つ依存関係などを、サーバーに対して記述するのです。

これを全て動作させるためには、通常は .jarファイルにパッケージされているJDBCドライバーが、依存関係として必要です。Geronimoは、必要な依存関係 .jarファイルの全てをクリーンに、きちんと保持するための場所を持っています。皆さんのGeronimoサーバーのホーム・ディレクトリーを見ると、repositoryというサブディレクトリーがあるのが分かるでしょう。これが今度は、宣言すべき各共有コンポーネントに対するサブディレクトリーを含むのです。こうしたサブディレクトリーそれぞれの中にはjarsサブディレクトリーがあり、ここに必要なファイルを置くのです。

ここではローカルのMySQLデータベースに接続したいので、MySQLのWebサイト(参考文献にリンクがあります)から、mysql-connector-java-3.1.8-bin.jarをダウンロードしました。mysqlと呼ばれるリポジトリーの下にディレクトリーを作り、.jarファイルをjarsディレクトリーに置きます。

今度は、J2EEコネクターに対するデプロイメント計画を作る必要があります。XMLファイルの中には、JDBCドライバー、.jarが置かれているリポジトリー・ディレクトリーの中でURIパスを規定するdependency要素があることに注意してください。これを自分のデータベースに合うように修正するためには、UserNameやPassword、Driver、ConnectionURLなどに対するconfigId要素やconfig-property-setting要素を編集します。これをリスト1に示します。

リスト1. configId要素やconfig-property-setting要素を編集する
<?xml version="1.0">

<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector" 
version="1.5" 
configId="MysqlDatabase"  
parentId="org/apache/geronimo/Server">

<dependency>
<uri>
mysql/jars/mysql-connector-java-3.1.8-bin.jar
</uri>
</dependency>

<resourceadapter>
<outbound-resourceadapter>
<connection-definition>
<connectionfactory-interface> 
javax.sql.DataSource 
</connectionfactory-interface>
<connectiondefinition-instance>
<name>MysqlDataSource</name>
<config-property-setting name="UserName"> 
geronimo 
</config-property-setting>
<config-property-setting name="Password"> 
geronimo 
</config-property-setting>
<config-property-setting name="Driver"> 
com.mysql.jdbc.Driver 
</config-property-setting>
<config-property-setting name="ConnectionURL">
jdbc:mysql://localhost/geronimo 
</config-property-setting>
<config-property-setting name="CommitBeforeAutocommit"> 
false 
</config-property-setting>
<config-property-setting name="ExceptionSorterClass"> 
org.tranql.connector.NoExceptionsAreFatalSorter
</config-property-setting>

<connectionmanager>
<local-transaction/>
<single-pool>
<max-size>10</max-size>
<min-size>0</min-size>
<blocking-timeout-milliseconds> 
5000 
</blocking-timeout-milliseconds>
<idle-timeout-minutes>
30
</idle-timeout-minutes>
<match-one/>
</single-pool>
</connectionmanager>

<global-jndi-name> 
jdbc/MysqlDatabase 
</global-jndi-name>

</connectiondefinition-instance>
</connection-definition>
</outbound-resourceadapter>
</resourceadapter>
</connector>

MySQLデータベース用のデプロイメント計画であることが明確なように、このXMLファイルをmysql-plan.xmlとして保存します。次に、このファイルをデプロイします。そのためには、Geronimo Deployコマンドを使います。これはJ2EE Connectorなので、tranql/rarsの下にあるGeronimoリポジトリーの中の、tranql-connector-1.0-SNAPSHOT.rarファイルも必要になります。このXMLファイルをGeronimoのrootディレクトリーに置き、次のコマンドを使って、このディレクトリーからのデプロメントを完成します。

Type the following single command on one line. It's split to two lines here only for space reasons. 次のコマンドを、1行から成る1つのコマンドとしてタイプします(ここではスペースの関係から、2行に分割しています)。

$ java -jar bin\deployer.jar mysql-plan.xml 
repository\tranql\rars\tranql-connector-1.0-SNAPSHOT.rar

ユーザー名とパスワードを要求されますが、デフォルトで、それぞれsystemとmanagerになっています。UNIX®オペレーティング・システムの場合は、バックスラッシュを逆に、フォワードスラッシュにします。全てがうまく行くと、Deployed MysqlDatabaseでコマンドが応答するようになります。あるいは、configIdを何か別のものに変更した場合には、コマンドはそれを参照します。問題がある場合には、Geronimoのログを見て、デバッグを行います。


アプリケーション・スコープを持つJDBCデータ・ソースを作る

2番目のタイプのデータベース構成は、アプリケーション・スコープを持つデータ・ソースです。グローバルなJDBCデータ・ソースを作るのセクションで説明したmysql-plan.xmlファイル用のファイル・フォーマットは、このタイプのデプロイに再利用することができます。データベース・アクセスに関する情報を、アプリケーションの .earファイルに直接埋め込むためには、下記の手順を使用します。

まず、この記事の導入部分で触れたように、META-INF/geronimo-application.xmlデプロイメント計画を作る必要があります。これを下記に示します。

リスト2. META-INF/geronimo-application.xmlデプロイメント計画を作る
<application
xmlns="http://geronimo.apache.org/xml/ns/j2ee/application"
configId="MyApplication">

<module>
<connector>tranql-connector-1.0-SNAPSHOT.rar</connector>
<alt-dd>mysql-plan.xml</alt-dd>
</module>
</application>

次に、tranql-connector-1.0-SNAPSHOT.rarファイルを、.earファイルの中にバンドルします。また、バンドルされた .earファイル内にある他の任意のモジュールを参照するのと同じように、このファイルを、(モジュール要素内部のコネクター要素内にある)application.xmlファイルの中で参照します。mysql-plan.xmlファイルがコネクター・コンフィギュレーションを提供するために使用する情報を、デプロイメント計画によって(alt-dd要素の中に)追加する、というのがトリックなのです。アプリケーションの .earファイルの中には、mysql-plan.xmlファイルをバンドルするのを忘れないでください。


モジュール・スコープを持つJDBCデータ・ソースを作る

データベース構成に関する3番目のタイプのスコープは、最もGeronimoらしいものです。Geronimoチームはデータ・ソースへのアクセス・スコープを十分考えており、モジュール・レベルにまでアクセスを洗練すべく努力していることが、ここからよく分かります。この点は、アプリケーション・スコープ、あるいはグローバル・スコープのデータ・ソースのいずれかしか許さない、多くのアプリケーション・サーバーとは異なっています。この、モジール・レベルのスコープによって、ある程度の抽象化(データ秘匿)が可能となり、データベースの可視性を、特定なモジュールのみに制限することができます。これはつまり、他のモジュールはデータベースを修正できないということを意味し、問題が発生した場合に、複数階層のアプリケーション・アーキテクチャーの中で追跡すべきパスが少なくて済むことになります。

このタイプの構成を完成するためには、単純にmysql-plan.xmlファイルからコネクター要素を切り取り、geronimo-jetty.xmlファイルの中にある、新しいリソース要素(次のコードで、太字で強調したテキストの間にあります)の中に埋め込むのです。

リスト3. 新しいリソース要素の中にコネクター要素を埋め込む
<web-app xmlns="http://geronimo.apache.org/xml/ns/web/jetty"
xmlns:naming="http://geronimo.apache.org/xml/ns/naming"
...>
...
<resource>
<external-rar>
tranql/rars/tranql-connector-1.0-SNAPSHOT.rar
</external-rar>
<!-- Place the connector element, verbatim, below -->
<connector

</connector>
</resource>

これを見ると分かると思いますが、これが動作するためには、tranql-connector-1.0-SNAPSHOT.rarファイルは、$GERONIMO_HOME/repositoryディレクトリーの適当なサブディレクトリーに置く必要があります。新しくデプロイされたサーバーでは、そうなっているはずです。

なぜ、このタイプのデータベース構成スコープを使うのでしょう。もし、皆さんのWebアプリケーション・コンポーネントでのみ利用でき、他のコンポーネントやアプリケーションでは利用できなくしておきたいデータベース・テーブルがある場合、このスコープは理想的です。さらに、tranql.rarファイルは共有リソースなので、余分なファイルをデプロイする必要がない、という利点もあります。また、geronimo-jetty.xmlファイル中に少し追加のテキストを加えるだけで、アプリケーションのデータベース構成が埋め込まれる、という別の利点もあります。これによって将来、Webアプリケーションのクラスタリングが容易になる可能性もあるのです。


データ・ソースを使う

私はデータ・ソースの使い方を説明するために、小さなアプリケーションを書いてみました。このアプリケーションは、先ほど説明したmysql-plan.xmlファイルでデプロイされ、グローバル・スコープを持つデータベース・コネクターを使います。この方法を選んだのは、単純なことと、.warファイルでデプロイされるWebアプリケーションを開発することだけを考えたためです。ですからアプリケーション・スコープのデプロイは適用できません(適用できるのは、.earファイルのデプロイメント計画に対してのみです)。従ってこの場合は、グローバル・スコープを持つデプロイメント、あるいはモジュール・スコープを持つデプロイメントを選択します。

小さなEclipseプロジェクトが含まれている

この記事では、Eclipse IDEプロジェクトもロードできるようになっています。このプロジェクトには、サンプル・アプリケーションを構築し、それをGeronimoサーバーにデプロイするためのAntスクリプトが用意されています。私はEclipse 3.1M6と、Lomboz EJBプラグイン(オプション)のバージョンを使ってコードを構成しました。もちろん、アプリケーションをデプロイするためには、ここまでする必要はありません。

このサンプル・プロジェクトのファイル・ツリー構成を、下記の図1に示します。これは標準的なWebアプリケーションのソースコード・レイアウトであり、幾つかのJavaソースファイルと .jspファイル、これらをサポートするデプロイメント記述子、Geronimoデプロイメント計画などから構成されています。私の好きなJSPタグ・ライブラリー、DisplayTag(参考文献にリンクがあります)も入れてあります。これを使うと、Javaオブジェクトの集合を表形式で表現しやすくなるのです。また、おまけとして、Geronimo環境の中にJSPタグ・ライブラリーをどのように含め、使用するのかについても、この図から分かると思います。

図1. Eclipseサンプル・プロジェクト・ファイルの構成
図1. Eclipseサンプル・プロジェクト・ファイルの構成

少しばかりデータベースの設定が必要

次のMySQLコマンドを使ってデータベースを作り、それに許可を与え、テーブルを追加します。

リスト4. MySQLコマンドでデータベースを設定する
$ mysql -u root -p mysql
password: ****
> create database geronimo;
> grant all on geronimo.* to geronimo@127.0.0.1 
identified by 'geronimo';
> grant all on geronimo.* to geronimo@localhost 
identified by 'geronimo';
> use geronimo;
Database Changed
> create table phone ( 
name varchar(255) primary key, 
phone varchar(255)
);
> insert into phone ('Ralph Nader', '555-2221');
> insert into phone ('Albert Einstein','555-2222');

この単純なデータベースができると、PhoneBookEntryオブジェクトのリストを返すクラスがあるのが分かるでしょう(リスト5)。このクラスは、リソース・マップされたデータ・ソースへのJNDIルックアップから、JDBCコネクションを取得します。このコードは、org.acme.phonebookパッケージの下のphonebook/JavaSourceディレクトリーに現れています。

リスト5. getPhoneList()メソッドがPhoneBookEntryオブジェクトのリストを返す
/**
* Obtain a phone list from a JDBC Datasource.
*/
public Collection getPhoneList() 
throws NamingException, SQLException {

ArrayList list = new ArrayList();

InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) 
ctx.lookup("java:comp/env/jdbc/DataSource");

Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try {
con = ds.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("select name,number from phone");
while (rs.next()) {
PhoneBookEntry entry = 
new PhoneBookEntry(rs.getString("name"),
      rs.getString("number"));
list.add(entry);
}
return list;
} finally {
if (ctx != null)
ctx.close();
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (con != null)
con.close();
}
}

これを見ると、java:comp/env/jdbc/DataSourceという名前のDataSourceに対するInitialContextインスタンス(ここではctxという名前です)を、lookup()メソッドとして尋ねることにより、データ・ソースが得られることが分かります。そうするとDataSourceは、今度はコネクション・プールからデータソース・コネクションを取得するために使われ、それが今度は結果セットへのクエリー実行と繰り返しに使われ、最終的にPhoneBookEntryオブジェクトのリストが返されます。

鋭い人は、java:comp/env/jdbc/DataSourceという名前がどこで規定されるのか、と尋ねるでしょう。これは、一部はweb.xmlファイルで行われ、また一部はgeronimo-jetty.xmlデプロイメント計画の中で行われます。

これがweb.xmlファイルの中でどう見えるかを、下記に示します。

リスト6. java:comp/env/jdbc/DataSourceという名前をweb.xmlの中で規定する
<resource-ref>
<res-ref-name>jdbc/DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

また、geronimo-jetty.xmlファイルの中でどう見えるかを、下記に示します。

リスト7.java:comp/env/jdbc/DataSourceという名前をgeronimo-jetty.xmlの中で規定する
<naming:resource-ref>
<naming:ref-name>jdbc/DataSource</naming:ref-name>
<naming:resource-link>MysqlDataSource</naming:resource-link>
</naming:resource-ref>

これを見ると、web.xmlファイルの中で、別名、jdbc/DataSourceが設定されていることが分かるでしょう。またgeronimo-jetty.xmlファイルの中では、先にmysql-plan.xmlをデプロイした際に定義したMysqlDataSourceに、参照がリンクされています。

アプリケーションをデプロイする際にMysqlDataSourceが自動的にロードされるようにするには、geronimo-jetty.xmlファイルのweb-app要素のparentId属性を、MysqlDatabaseに設定します。これによって、Webアプリケーションをデプロイする際には最初にデータベースのデプロイを開始する必要があることを、Geronimoに伝えるのです。これは非常に良くできた依存性機構と言うことができます。


単純なJSPを書く

Webアプリケーションを書くには多くの方法があります。サーブレットを書く方法もあれば、XML/XSLTテンプレート・エンジンを導入する方法もあり、また単純にHTMLを書く方法もあります。あるいは、JSPを書く方法もあります。JSPはHTMLと非常に似ており、ちょっとしたXMLマークアップを持っていて、Javaコードをページの中に埋め込むことができます。また、タグ・ライブラリーと呼ばれるモジュールをアプリケーションに埋め込めるようになっており、そのためHTMLに追加できるタグの数が多くなり、便利な機能を追加することができます。GeronimoでJSPページを書く上で、特別なことは何もありません。Geronimoの背後にあるWebコンテナーであるJettyは、確立されたコンテナーとして素晴らしいパフォーマンスを持っており、しかも、コミュニティーでの尊敬を集めている開発チームが後ろに控えています。

サンプル・アプリケーションにあるJSPは、単純にJavaオブジェクトをインスタンス化し、DisplayTagタグ・ライブラリーを使って、エントリーを表形式で表示します。コードは、リスト8に示すように、非常に単純です。

リスト8. index.jspファイル
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Geronimo Phonebook</title>
</head>

<body>

<jsp:useBean id="phonelist" 
class="org.acme.phonebook.PhoneList" 
scope="request"/>

<p>This is a test application to show very simple 
database access.
</p>

<display:table name="phonelist.phoneList"/>

</body>
</html>

コンパイルとデプロイ

今度は、Antビルド・システムと一緒に使うための単純なbuild.xmlファイルが必要になります。サンプル・ファイルのメイン・ディレクトリーでantをタイプすれば、(build.xmlファイルが正しいプロパティーで構成されている限り)ビルドができるはずです。

リスト9に示すように、build.xmlファイルの中にはAntタスクがあります。

リスト9. build.xmlファイルの中のAntタスク
<target name="deploy" depends="compile,package" description="--> 
A simple Geronimo Phonebook JDBC Application">
<java jar="${geronimo.root}/bin/deployer.jar" fork="true">
<arg value="--user"/>
<arg value="${geronimo.user}"/>
<arg value="--password"/>
<arg value="${geronimo.password}"/>
<arg value="undeploy"/>
<arg value="PhoneBookWeb"/>
</java>
<java jar="${geronimo.root}/bin/deployer.jar" fork="true">
<arg value="--user"/>
<arg value="${geronimo.user}"/>
<arg value="--password"/>
<arg value="${geronimo.password}"/>
<arg value="deploy"/>
<arg value="phonebook.war"/>
</java>
</target>

ご覧の通り、deployer.jarファイルが実行され、Webアプリケーションをアンデプロイするように要求しています。この小さなアプリケーションではAntを使いましたが、Mavenを使うこともできます。Geronimoの開発チームによると、Mavenを使った方が、Geronimoアプリケーションの自動デプロイが、ずっと容易になるとのことです。


まとめ

Geronimoは何と言っても未熟であり、皆さんがサンプルのアプリケーションを試して行くと、時々その未熟さを意識させられるでしょう。Geonimoは、現在最もモジュラーでクリーンな構成を持ったアプリケーション・サーバーの1つであり、今後も急速に改善されて行くでしょう。今年中には、標準に準拠した1.0リリースが見られると思いますので、今知っておいて損はないでしょう。


ダウンロード

内容ファイル名サイズ
Source code for the phone book applicationGeronimoPhonebook.zip1,527KB

参考文献

  • Apache Geronimoの正式Webページには、ドキュメンテーションやニュース、ダウンロードに関する情報などが用意されています。
  • The DisplayTag JSP TagのWebページには、表示タグ・ライブラリーに関するドキュメンテーションやダウンロード情報が用意されています。
  • Lomboz J2EE Eclipse Plug-inは、非常に良質な、Eclipse用のオープンソースJ2EEプラグインであり、コード構成やJ2EE標準モジュール、デプロイなどに役立ちます。
  • mysql.comから、コネクターをダウンロードすることができます。
  • Apache Geronimoに基づくオープンソースのアプリケーション・サーバーである、Gluecode Standard Editionをダウンロードしてください。
  • developerWorksのApache Geronimoプロジェクトの領域では、Geronimo開発者のための資料を提供しています。
  • Mavenはソフトウェアのプロジェクト管理や理解のためのツールであり、Geronimoアプリケーションのデプロイを自動化することができます。Apache Maven Web siteには、ダウンロード情報やドキュメンテーションが用意されています。
  • developerWorksのOpen sourceゾーンには、オープンソース技術を使った開発や、IBM製品でオープンソースを使用するためのハウツー情報やツール、プロジェクトの更新情報などが豊富に用意されています。
  • developerWorksのOpen sourceゾーンには、Apacheに関する記事や、無料のApacheチュートリアルなどが用意されていますので、ご覧ください。
  • developerWorks blogsに参加して、developerWorksのコミュニティーに加わってください。
  • Developer BookstoreのOpen sourceセクションには、割り引きで購入できるオープンソース関係の書籍が豊富に取り揃えられていますので、ぜひご利用ください。
  • 皆さんの次期オープンソース開発プロジェクトを、IBM trial softwareを使って革新してください。ダウンロードで、あるいはDVDで入手することができます。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source, Java technology
ArticleID=232570
ArticleTitle=Geronimoアプリケーション・サーバーにデータベースを接続する3つの方法
publish-date=06212005