オブジェクト指向プログラミング 第19回 2006/01/11
CMPでデータベースにアクセスするプログラムを作る。
XDocletの設定
プロジェクトを選択し、右クリックメニューからプロパティを選択 XDoclet Configurationsを選択する。次の2つの設定を作る。
設定名EJB
Addボタンをクリックし、EJB用設定名EJBを入力これはEntityBean?等を基にインターフェースやXMLファイルを自動生成するための設定。
EJBにはejbdocletを追加する。
- ejbdoclet
- destDir = src
- ejbSpec = 2.0
- deploymentdescriptor
- destDir = src/META-INF
- fileset
- dir = src
- excludesのチェックを外す
- include = **/*Bean.java
- homeinterface
- jboss
- Version=4.0
- destDir = src/META-INF
- packageSubstitution
- package=ejb
- substituteWith=interfaces
- remoteinterface
設定名WEB
サーブレット等の設定webdocletを追加する。
- webdoclet
- destDir = src/WEB-INF
- deploymentdescriptior
- Servletspec = 2.4
- fileset
- dir = src
- excludesを外す
- includes = **/*Servlet.java
- jbosswebxml
- Version = 4.0
XDocletの設定に基づくファイル自動生成
Xdocletの設定に従ってファイルを自動生成する。
プロジェクトを選択、右クリックメニューからRun XDocletを選択
HTML、JSP用フォルダ作成
フォルダwarをsrcと同じレベルに作る。ここに、アプリケーションで使用するHTML、JSPのファイルを置く
パッケージ用の設定
ここまでで作成、自動生成したファイルをまとめること。
appication.xmlの作成
src/META-INFを右クリック 新規→その他→JBOSS-IDE→Descriptions→EAR 1.4 Deployment Descriptor
次のリストのように自分のプログラムに合わせて名前を入力する。
項目 | 値 |
---|---|
display-name | アプリケーションの名前 |
ejb | EJBのjarファイル名 |
web-uri | WEB用アーカイブ名(war) |
context-root | WEB用アーカイブから拡張子をのぞいた名前 |
<?xml version="1.0" encoding="UTF-8"?> <application version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"> <display-name>MemberApp</display-name> <module> <ejb>Member.jar</ejb> </module> <module> <web> <web-uri>MemberWeb.war</web-uri> <context-root>/MemberWeb</context-root> </web> </module> </application>
パッケージファイルの設定
パッケージ生成に必要な設定。次の4つのアーカイブを作る。
- EJBアーカイブ EntityBean?等のクラスファイルをまとめる
- クライアント クライアント用クラスファイル
- WEB HTML、JSPをまとめる
- エンタープライズアプリケーション 上記のアーカイブをまとめたもの
EJB関係
ファイル名:Member.jar
種類 | 値 | prefix | include |
---|---|---|---|
フォルダ | /プロジェクト/bin | なし | test/ejb/*.class、test/interfaces/*.class |
ファイル | /プロジェクト/src/META-INF/ejb-jar.xml | META-INF | |
ファイル | /プロジェクト/src/META-INF/jboss.xml | META-INF | |
ファイル | /プロジェクト/src/META-INF/jbosscmp-jdbc.xm | META-INF |
EJBクライアント
ファイル名:MemberClient?.jar
種類 | 値 | prefix | include |
---|---|---|---|
フォルダ | /プロジェクト/bin | test/interfaces/*.class |
WEBコンポーネント
ファイル名:MemberWeb?.war
種類 | 値 | prefix | include |
---|---|---|---|
フォルダ | /プロジェクト/bin | WEB-INF/classes | test/web/*.class |
〃 | /プロジェクト/war | *.jsp、*.html | |
〃 | /プロジェクト/src/WEB-INF | WEB-INF | |
ファイル | /プロジェクト/MemberClient?.jar | WEB-INF/lib |
エンタープライズアプリケーション
ファイル名:MemberApp?.ear
種類 | 値 | prefix |
---|---|---|
ファイル | /プロジェクト/src/META-INF/application.xml | META-INF |
〃 | /プロジェクト/Member.jar | |
〃 | /プロジェクト/MemberWeb?.war |
Member.jar、MemberWeb?.warは入力する。
XMLファイルの修正
今回の演習では次の2つのXMLファイルを修正する。
web.xml
次の文を追加。
<ejb-ref > <description><![CDATA[Reference to the TestDate EJB]]></description> <ejb-ref-name>ejb/Member</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>test.interfaces.MemberHome</home> <remote>test.interfaces.Member</remote> <ejb-link>Member</ejb-link> </ejb-ref>
jboss-web.xml
次の文を追加
<ejb-ref> <ejb-ref-name>ejb/Member</ejb-ref-name> <jndi-name>ejb/Member</jndi-name> </ejb-ref>
パッケージング
プロジェクトを選択し、右クリックメニューからRun Packagingを選択し、実行
デプロイメント
MemberApp?.earをデプロイメントする。
- ファイルを右クリック
- Deploymentを選択
- 初回はDeploy toを選択し、ターゲットを選択する。
- 2回目以降はRedeployを選択
デプロイメントに成功すると次のようなメッセージがJBOSSを実行しているコンソールに表示される。
Started J2EE application: file:/usr/local/jboss-4.0.3SP1/server/default/deploy/MemberApp.ear
これでこのEJBアプリケーションが利用できる。
動作確認
ブラウザを使いデプロイメントしたアプリケーションの動作を確認する。次のURLを開く。
http://localhost:8080/MemberWeb