J2EE-RIでEJBを動かす

J2EE-RIでEJBを動かす

作成 2002/11/12

基本

インストール

ダウンロード:http://java.sun.com/j2ee/download.html

Windows版はインストーラを実行するだけ。

メニューを日本語化するには日本語版追補をインストール

起動、終了

起動:j2ee
-verboseオプションでログ出る冗長モード

停止:j2ee -stop

J2EE_HOME環境変数が必要
J2EE_HOMEとPATH(いろいろツールがbinにあるので)を設定する 起動用のバッチファイルを作っとくと便利

jndi.properties

java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory
java.naming.factory.url.pkgs=com.sun.enterprise.naming

j2ee.jarに含まれる

データベース

おまけDB、Cloudscape機能限定版がデフォルトで付いてる。
機能限定でコネクションが1つしかとれないので、 J2EE-RIで使ってるときには他からアクセスできない。
SQLは大文字、小文字区別するので、""で囲んでカラム名を書く

起動と停止は
cloudscape -start
cloudscape -stop

CMP配備時にテーブルの自動作成機能アリ

j2ee.jar

必要なクラスがこのjar一個に入ってるので、 クラスパスに通すのが楽?かも。

デプロイ

GUIツールがある。起動は
deploytool

セッションBean

EJBJARを作って、ファイル->アプリケーションに追加->EJB JAR

GUI上でDDを作る方法もある

JNDI名を指定する。

デプロイ時に"クライアントJARを返す"をチェック

クライアントを実行するには、クライアントJARをクラスパスに通す

エンティティBean

セッションBeanの設定に加え、、、

エンティティ→配備値の設定
データベースはデフォルトのCloudscapeならJDNIをjdbc/Cloudscape
デフォルトSQLを作成したあと、findByPrimaryKey以外のfinderメソッドの記述を追加

メッセージドリブンBean

キューの一覧、登録、削除
j2eeadmin -listJmsDestination
j2eeadmin -addJmsDestination HelloQueue Queue
j2eeadmin -removeJmsDestination HelloQueue

EJBのJNDIをQueueと同じにする?

データベースを変更する

デフォルトのCloudscape以外のデータベースが使いたい場合、 以下の設定が必要です。

  1. JDBCクラス名の設定
  2. データソースJNDIとURLの設定
  3. クラスパスにJDBCドライバを追加

1と2はadmintoolで行えます。

C:\apps\j2sdkee1.3.1\bin>j2eeadmin -addJdbcDriver org.gjt.mm.mysql.Driver
C:\apps\j2sdkee1.3.1\bin>j2eeadmin -addJdbcDataSource jdbc/MySQL jdbc:mysql://localhost/wb

admintoolでやってることは%J2EE_HOME%/config/resource.propertiesに設定を追加してるだけみたいです。 直接手書きでも大丈夫(と思う)。

...
jdbcDataSource.4.name=jdbc/InventoryDB
jdbcDataSource.4.url=jdbc\:cloudscape\:rmi\:CloudscapeDB;create\=true
jdbcDataSource.5.name=jdbc/MySQL
jdbcDataSource.5.url=jdbc\:mysql\://localhost/wb
jdbcDriver.0.name=COM.cloudscape.core.RmiJdbcDriver
jdbcDriver.1.name=org.gjt.mm.mysql.Driver
...

3は、起動スクリプトにクラスパスを追加します(jarをlibの下に置くとかじゃダメかな?)。

%J2EE_HOME%/setenv.bat

set CPATH=%CLOUDJARS%;%CLASSESDIR%;%JMS_CLASSESDIR%;%J2EEJARS%;%J2EETOOL_CLASSES%;%J2EETOOL_JAR%;%LOCALEDIR%;%J2EE_CLASSPATH%;%JAVATOOLS%;%JAVAHELPJARS%

@rem mysetting
set CPATH=%CPATH%;C:\download\mysql\mm.mysql-2.0.4-bin.jar

と、書いてみてから思ったが、j2ee -verboseする前に 環境変数CLASSPATHに設定した方がいいかもしれない。。。

やることが分かってれば簡単ですね。

と、いうか、deploytoolのサーバ構成で設定できますね。。。

その他

appクライアントの実行例

セキュリティ設定を記述した場合は、サーバ側でロールとユーザーの追加が必要

runclient -client sec2Client.jar -name Client -textauth 1

リモートホストへデプロイ