OracleのWebLogic Server 11gR1、Eclipse、Oracle 11gでEJB3.0の概要を学習
限られた時間でEJB3.0の概要を把握するため、2日という期間でEJB3.0が何かを調べたときの資料です。
EJB3.0は自動化やDI,O/Rマッピングなどを機械的にやるので、概要を把握する際にトライアンドエラーをするコストがすごく高くつきます。また、学習段階だとそのエラーが何を意味しているのかは理解できても、その対策方法を行うのにすごく時間がかかってしまいます。
下記で説明する「Oracle Fusion Middleware ドキュメント・ライブラリ」を読みつつ、Google検索すれば、EJB3.0の概要がわかると思います。用語を押さえたら、「Introduction to Oracle Enterprise Pack for Eclipse 11g JPA Workbench」で手を動かすことで実装のスタートラインに立てると思います。
環境
- DB:Oracle 10g XE or Oracle 11g
- 開発ツール:Oracle Enterprise Pack for Eclipse(OEPE)
- アプリケーションサーバー:WebLogic Server 11gR1
- OS:Windows Server 2008
参考資料
上記環境で開発するために、参考になるリンク。
Getting Started With the Oracle Database Plugin for Eclipse
Oracle Database Pluginの概要。
Introduction to Oracle Enterprise Pack for Eclipse 11g JPA Workbench
Oracle Enterprise Pack for Eclipse、WebLogic Server 11gR1、Oracle 10g XEを使ってEJB3.0のセッションBean、エンティティBean、JPA、呼び出しとなるJSP/Servletのユーザーインタフェース作成をして、EARパッケージをデプロイするまで記述されています。また、このチュートリアルで使ったサンプルのZIPがあるので、EJB3.0をどのように実装すればわからない場合はお勧めです。
http://www.oracle.com/technology/pub/articles/cioroianu-eclipse-jpa.html
Oracle Enterprise Pack for Eclipse 11gR1 PS1
OEPEのページ。WebLogic Server 11gR1は、アプリケーションサーバのみと、OEPEバンドル版があるので、バンドル版をインストールする場合は必要ありません。
http://www.oracle.com/technology/global/jp/products/enterprise-pack-for-eclipse/index.html
Oracle Fusion Middleware ドキュメント・ライブラリ
アプリケーションのデプロイメント、アプリケーションの開発、Web アプリケーション、サーブレット、JSP の開発、エンタープライズ JavaBeans バージョン 3.0 プログラマーズ ガイド から必要なところをつまみ食いすれば、EJB3.0がわかってきます。
http://download.oracle.com/docs/cd/E16340_01/dev.htm
EJB3 – HelloWorld example Using Weblogic 10.3
JNDI lookupでのEJB3.0の呼び出しサンプルです。上記の「Introduction to Oracle Enterprise Pack for Eclipse 11g JPA Workbench」を見つけ出す前まで、JSP/ServletからEJB3.0のセッションBeanをうまく呼び出せなくて試行錯誤しているときに見つけました。
ドキュメント内のNoteで書かれていますが、ユーザ名、パスワード、プロバイダURLは各自設定する必要があります。
http://upog.wordpress.com/2009/10/18/ejb3-helloworld-example-using-weblogic-10-3/
James Bayer’s Blog - Workshop for WebLogic 10.3 JEE 5 Trial and Error
クライアントPC上のJavaVMで動作するJavaクライアントプログラムから、サーバ側のWebLogic Server のEJB3.0セッションBeanを呼び出すための記事です。Oracle Enterprise Pack for Eclipse(OEPE)上で、J2EE アプリケーションクライアントを実行するには、実行の設定で、Bootstrap EntriesからWeblogic関係のライブラリを削除すること、User Entriesにwlclient.jarを追加する事について書かれています。
http://blogs.oracle.com/jamesbayer/2008/08/workshop_for_weblogic_103_jee.html
用語
- Oracle E-Business Suite
ERPパッケージ。財務会計、人事管理(HRM)、サプライチェーンマネジメント(SCM)、購買調達、プロジェクト管理、マスターデータ管理のソリューションを包括的に提供。
- Java EE5
- EJB3.0(セッションBean,エンティティ,インターセプター)
- Webサービス
- JSF/JSTL
- JPA O/Rマッピング
- その他、トランザクション管理、リソース管理など
- EARファイル
EJBパッケージ、WARパッケージ(JSP/ServletなどWeb層のアプリケーション)などをまとめたものです。Eclipseの場合は、Enterprise Applicationプロジェクトを作成します。エンタープライズアプリケーションとも呼ばれます。これはただまとめるための器となるプロジェクトです。これに、EJBプロジェクト、Dynamic Web プロジェクト、JPAプロジェクトを追加します。
EARファイル = WARファイル + EJB Jarファイル …
- Oracleの永続化プロダクト
もともとは、Oracle Kodo JPA/JDOがでしたが、マニュアルを確認すると現在は非推奨となっています。Oracle TopLinkを使うように促しています。2010年現在、Oracle TopLinkは、Eclipse Foundationに寄与されたのでEclipseLinkになっています。よって、EclipseからJPAプロジェクトを作成すれば、EclipseLinkをJPA実装として使えます。
- 依存性注入
アプリケーションが起動中に、Javaのフィールド変数に値を埋めてくれる機能と考えればわかりやすいです。DIとも呼ばれます。EJBでは、SQLを使わないようにJPAのO/Rマッピング、EJB2.0時代のホーム/リモートインターフェースの省略などで使われます。
- インターセプター
アスペクト指向を組み入れる方法です。プログラムをするとき、業務ロジック以外に、ログ出力機能、セキュリティチェック機能、例外処理機能など、本来業務ロジックとしてはではないプログラミングが必要になります。これらのコードを業務ロジックとともに記述すると、複雑になってくるので、普通はオブジェクト指向の継承や委譲機能を使って、プログラムを分割します。これをさらに発展させたのが、インターセプターです。セキュリティチェック機能の後に、ログ出力機能を呼び出し、その後業務ロジックを呼び出す。また設定だけで、呼び出す順番を変更できたりします。EJB側で使えるフィルターです。
- J2EE アプリケーションクライアント
EARファイルに含めることのできるクライアントモジュール(JARファイル)の事です。J2EE標準デプロイメント記述子のapplication-client.xmlが含まれています。またWeblogic
- T3プロトコル
Oracle独自の通信プロトコルです。
- Weblogic フルクライアント
OracleのT3プロトコルを使ったJava RMIクライアントです。Weblogicのwlfullclient.jarがライブラリとして必要になります。
