![](../images/logo_with_line.gif) |
TM |
|
WebLogic エンタープライズ JavaBeans プログラマーズ ガイド
|
WebLogic Server EJB のユーティリティ
以下の節は、EJB で使用する WebLogic Server に付属のユーティリティおよびサポート ファイルの詳細なリファレンスです。
EJBGen
EJBGen は、エンタープライズ JavaBean 2.0 のコード ジェネレータです。Bean クラスファイルに javadoc タグで注釈を付けた後、EJBGen を使用して EJB アプリケーションのリモートクラス、ホーム クラス、および、デプロイメント記述子ファイルを生成することができるので、編集および管理すべき EJB ファイルの数を 1 つに減らせます。
BEA WebLogic 7.0 のサンプルをインストール済みであれば、SAMPLES_HOME¥server¥src¥examples¥ejb20¥ejbgen に、EJBGen を使用した¢Bands£という名前のサンプル アプリケーションがあります。
EJBGen 構文
javadoc -docletpath weblogic.jar -doclet weblogic.tools.ejbgen.EJBGen (YourBean).java
クラスパス内に weblogic.jar がない場合は、次のように weblogic.jar にパスを追加します。
javadoc -docletpath <path_to_weblogic.jar> weblogic.jar -doclet weblogic.tools.ejbgen.EJBGen (YourBean).java
他の EJB との関係がある EJB に対して EJBGen を呼び出す場合は、次のように EJB の後に、関係する EJB を指定してその EJB を呼び出します。
javadoc -docletpath weblogic.jar -doclet weblogic.tools.ejbgen.EJBGen (YourBean).java (RelatedBean).java
EJBGen では次のオプションを使用します。
オプション
|
定義
|
-d [directory]
|
このディレクトリの下にすべてのファイルが作成される。
|
-ignorePackage
|
このフラグを設定すると、EJBGen は生成した Java ファイルのパッケージ名を無視し、-d フラグで指定された出力ディレクトリにファイルを作成する (-d フラグが指定されていない場合は、カレント ディレクトリ)。
|
-pfd1
|
このフラグを設定すると、EJBGenは EJB 2.0 の最終草案 バージョン 1 と互換したデプロイメント記述子を生成する。Weblogic 6.1 より前のバージョンを使用する場合には、このフラグを必ず使用する。
|
-ejbPrefix [string] (default: "")
|
EJB クラス生成時に使用するプレフィックス。
|
-ejbSuffix [string] (default: "Bean" or "EJB")
|
EJB クラス生成時に使用するサフィックス。
|
-localHomePrefix [string] (default: "")
|
ローカル EJB クラス生成時に使用するプレフィックス。
|
-localHomeSuffix [string] (default: "LocalHome")
|
ローカル EJB クラス生成時に使用するサフィックス。
|
-remoteHomePrefix [string] (default: "")
|
リモート EJB ホーム クラス生成時に使用するプレフィックス。
|
-remoteHomeSuffix [string] (default: "Home")
|
リモート EJB ホーム クラス生成時に使用するサフィックス。
|
-remotePrefix [string] (default: "")
|
リモート EJB クラス生成時に使用するプレフィックス。
|
-remoteSuffix [string] (default: "")
|
リモート EJB クラス生成時に使用するサフィックス。
|
-localPrefix [string] (default: "")
|
ローカル EJB クラス生成時に使用するプレフィックス。
|
-localSuffix [string] (default: "Local")
|
ローカル EJB クラス生成時に使用するサフィックス。
|
-valueObjectPrefix [string] (default: "")
|
Value オブジェクト クラス生成時に使用するプレフィックス。
|
-valueObjectSuffix [string] (default: "Value")
|
Value オブジェクト クラス生成時に使用するサフィックス。
|
-jndiPrefix [string] (default: "")
|
@remote-jndi-name と @local-jndi-name で使用するプレフィックス。
|
-jndiSuffix [string] (default: "")
|
@remote-jndi-name と @local-jndi-name で使用するサフィックス。
|
-checkTags
|
このオプションで起動した場合、EJBGen はどのクラスも生成しないが、コマンドラインで指定したクラスに対して有効でない EJBGen タグを見つける。
|
-docTags
|
EJBGen によって把握された、すべてのタグを出力する。注意点として、このオプションでどのソースファイルも必要ないにもかかわらず、コマンドラインで既存の Java クラスを指定しなくてはならない。 これをしないと、このフラグを認識したにもかかわらず、Javadoc はエラーメッセージを返す。
|
-docTag tagName
|
把握されているすべての属性など、このタグの詳細な説明を出力する。注意点として、このオプションでどのソースファイルも必要ないにもかかわらず、コマンドラインで既存の Java クラスを指定しなくてはならない。 これをしないと、このフラグを認識したにもかかわらず、Javadoc はエラーメッセージを返す。
|
-docTagsHtml
|
-docTags と同じであるが、HTML 文書を生成する。
|
-propertyFile [fileName]
|
EJBGen が置換変数を定義するのに読み込む、プロパティ ファイルの名前。置換変数のドキュメントを参照のこと。
|
-valueBaseClass [className]
|
削除された。value.baseClass 変数を使用する。
|
-noValueClasses
|
これを指定すると、Value クラスは生成されなくなる。
|
スペースを含む属性は二重引用符で囲む
スペースの含まれる属性を指定する際には、その属性値を二重引用符で囲みます。 次に例を示します。
group-names = "group1, group2"
EJBGen の例
注釈を付けた Bean ファイルを次に示しますが、これを基に EJBGen はリモート インタフェース、ホーム インタフェース、デプロイメント記述子ファイルを生成します。AccountBean.java がメインの Bean クラスです。これはCMP EJB 2.0 エンティティ Bean です。
/**
* @ejbgen:entity
* ejb-name = AccountEJB-OneToMany
* data-source-name = examples-dataSource-demoPool
* table-name = Accounts
* prim-key-class = java.lang.String
*
* @ejbgen:jndi-name
* local = one2many.AccountHome
* @ejbgen:finder
* signature = "Account findAccount(double balanceEqual)"
* ejb-ql = "WHERE balance = ?1"
*
* @ejbgen:finder
* signature = "Collection findBigAccounts(double balanceGreaterThan)"
* ejb-ql = "WHERE balance > ?1"
*
* @ejbgen:relation
* name = Customer-Account
* target-ejb = CustomerEJB-OneToMany
* multiplicity = many
* cmr-field = customer
*
*/
abstract public class AccountBean implements EntityBean {
/**
* @ejbgen:cmp-field column = acct_id
* @ejbgen:primkey-field
* @ejbgen:remote-method transaction-attribute = Required
*/
abstract public String getAccountId();
abstract public void setAccountId(String val);
// ....
}
この例でも見られるように、タグには、それが使用できる場所に応じてクラス タグとメソッド タグの 2 種類があります。
ファイルの編集を終えたら、次の javadoc コマンドを通して EJBGen を起動します。
javadoc -docletpath weblogic.jar -doclet weblogic.tools.ejbgen.EJBGen AccountBean.java
javadoc が存在すれば、次のファイルが生成されます。
- Account.java
- AccountHome.java
- ejb-jar.xml
- weblogic-ejb-jar.xml
- weblog-cmp-rdbms-jar.xml
EJBGen タグ
次のタグを使って Bean ファイルに注釈を付けます。
@ejbgen:automatic-key-generation
使用場所 : クラス
適用対象 : エンティティ Bean
属性
|
説明
|
必須
|
cache-size
|
主要キャッシュのサイズ。
|
必須
|
name
|
ジェネレータの名前。
|
必須
|
type
|
ジェネレータのタイプ。
|
必須
|
@ejbgen:cmp-field
使用場所 : メソッド
適用対象 : エンティティ Bean
属性
|
説明
|
必須
|
column
|
CMP フィールドがマップされるカラム。
|
必須
|
column-type
|
このカラムのタイプ (OracleClob | OracleBlob)。
|
省略可能
|
ordering-number (0..n)
|
このフィールドがシグネチャおよびコンストラクタ内に置かれるべき順番。この順序付けを有効にするためには、すべての CMR および CMP フィールドがこの属性で異なる数値を持つ必要がある。
|
省略可能
|
@ejbgen:cmr-field
使用場所 : メソッド
適用対象 : エンティティ
属性
|
説明
|
必須
|
ordering-number (0..n)
|
このフィールドがシグネチャおよびコンストラクタ内に置かれるべき順番。この順序付けを有効にするためには、すべての CMR および CMP フィールドがこの属性で異なる数値を持つ必要がある。
|
省略可能
|
@ejbgen:create-default-rdbms-tables
使用場所 : クラス
適用対象 : エンティティ Bean
@ejbgen:ejb-client-jar
使用場所 : クラス
適用対象 : すべて Bean のタイプ
属性
|
説明
|
必須
|
file-name
|
生成するクライアント jar の名前。複数の EJB にこのタグがあった場合、指定された jar ファイルのうち1 つだけがデプロイメント記述子に含められる。
|
必須
|
@ejbgen:ejb-local-ref
使用場所 : クラス
適用対象 : すべて Bean のタイプ
属性
|
説明
|
必須
|
home
|
Bean のローカル クラス
|
省略可能
|
jndi-name
|
参照の JNDI 名。
|
省略可能
|
link
|
Bean のリンク。
|
省略可能
|
local
|
Bean のホーム クラス。
|
省略可能
|
name
|
参照の名前。
|
省略可能
|
type
|
(Entity | Session)
|
省略可能
|
@ejbgen:ejb-ref
使用場所 : クラス
適用対象 : すべて Bean のタイプ
属性
|
説明
|
必須
|
home
|
Bean のリモート クラス。
|
省略可能
|
jndi-name
|
参照の JNDI 名。
|
省略可能
|
link
|
Bean のリンク。
|
省略可能
|
name
|
参照の名前。
|
省略可能
|
remote
|
Bean のホーム クラス。
|
省略可能
|
type
|
(Entity | Session)
|
省略可能
|
@ejbgen:entity
使用場所 : クラス
適用対象 : エンティティ Bean
属性
|
説明
|
必須
|
ejb-name
|
エンティティ Bean の名前。
|
必須
|
prim-key-class
|
NULL
|
必須
|
abstract-schema-name
|
この EJB の抽象スキーマ名。指定されない場合、ejb-name の値が使用される。
|
省略可能
|
concurrency-strategy
|
この Bean の同時方式を定義する (Optimistic | ReadOnly | Exclusive | Database)。
|
省略可能
|
data-source-name
|
データソース名 (config.xml で宣言したのと同じ)。
|
省略可能
|
db-is-shared
|
(True | False)
|
省略可能
|
default-transaction
|
詳細なトランザクション属性を設定しない、すべてのメソッドに適用されるトランザクション属性。
|
省略可能
|
delay-database-insert-until
|
(ejbCreate | ejbPostCreate)
|
省略可能
|
delay-updates-until-end-of-tx
|
トランザクション コミット後に更新が送信されるかどうか (True | False)。
|
省略可能
|
idle-timeout-seconds
|
ある EJB がキャッシュ内に置かれる最長の時間。
|
省略可能
|
invalidation-target
|
コンテナ管理による永続性 エンティティ EJB が変更された場合に無効とすべき、読み込み専用エンティティ Bean の ejb-name。
|
省略可能
|
max-beans-in-cache
|
キャッシュ内の Bean の最大数。
|
省略可能
|
persistence-type
|
このエンティティ Bean のタイプ (cmp | bmp)。デフォルトは cmp。
|
省略可能
|
prim-key-class-nogen
|
(True | False)。このキーワードを指定した場合、EJBGen は (各自が提供するものと仮定して) 主キー クラスを生成しなくなる。
|
省略可能
|
read-timeout-seconds
|
読み込み専用エンティティ Bean に ejbLoad() を呼び出す間隔の秒数。
|
省略可能
|
reentrant
|
(True | False)
|
省略可能
|
run-as
|
この EJB のロール名を指定する。
|
省略可能
|
run-as-identity-principal
|
ロールを複数プリンシパルにマップする場合のプリンシパル名を指定する。
|
省略可能
|
table-name
|
主キーの Java クラス。複合主キーの場合、このクラスは EJBGen によって生成される。
|
省略可能
|
trans-timeout-seconds
|
トランザクションのタイムアウト (秒数)。
|
省略可能
|
use-caller-identity
|
この EJB が呼び出し側の ID を使用するかどうか (True | False)。
|
省略可能
|
@ejbgen:env-entry
使用場所 : クラス
適用対象 : すべて Bean のタイプ
属性
|
説明
|
必須
|
name
|
この環境エントリの名前。
|
必須
|
type
|
この環境エントリの Java タイプ (java.lang であっても完全修飾しなければならない)。
|
必須
|
value
|
この環境エントリの値。
|
必須
|
@ejbgen:finder
使用場所 : クラス
適用対象 : エンティティ Bean
属性
|
説明
|
必須
|
ejb-ql
|
デプロイメント記述子に含まれるものと同じ、EJB QL リクエスト。
|
必須
|
signature
|
ホーム クラスに生成したいシグネチャと正確に一致させなければならない。EJBGen は適合例外を追加するが、各パラメータについて、 java.lang であっても完全修飾したタイプを必ず指定する。
|
必須
|
isolation-level
|
このメソッドのトランザクション アイソレーションのタイプ。
|
省略可能
|
transaction-attribute
|
このローカル メソッドのトランザクション属性。指定されない場合、デフォルトのトランザクション属性が使用される。このタグを付けたメソッドが、ローカル クラス上に生成される。
|
省略可能
|
weblogic-ejb-ql
|
デプロイメント記述子のものと同じ、Weblogic EJB QL リクエスト。注意 : このリスエストが必要になる場合、EJB QL と WebLogic EJBQL を二重引用符で囲む必要がある。
|
省略可能
|
@ejbgen:jndi-name
使用場所 : クラス
適用対象 : すべて Bean のタイプ
属性
|
説明
|
必須
|
local
|
この EJB のローカル JNDI 名。指定されない場合、いずれのローカル インタフェースも生成されない。
|
省略可能
|
remote
|
この EJB のリモート JNDI 名。指定されない場合、いずれのリモート インタフェースも生成されない。
|
省略可能
|
@ejbgen:local-home-method
使用場所 : メソッド
適用対象 : エンティティ Bean、セッション Bean
属性
|
説明
|
必須
|
transaction-attribute
|
このローカル メソッドのトランザクション属性。指定されない場合、デフォルトのトランザクション属性が使用される。このタグを付けたメソッドが、ローカル クラス上に生成される。
|
省略可能
|
@ejbgen:local-method
使用場所 : メソッド
適用対象 : エンティティ Bean、セッション Bean
属性
|
説明
|
必須
|
isolation-level
|
このメソッドのトランザクション アイソレーションのタイプ。
|
省略可能
|
transaction-attribute
|
このローカル メソッドのトランザクション属性。指定されない場合、デフォルトのトランザクション属性が使用される。このタグを付けたメソッドが、ローカル クラス上に生成される。
|
省略可能
|
@ejbgen:message-driven
使用場所 : クラス
適用対象 : メッセージ駆動型 Bean
属性
|
説明
|
必須
|
destination-jndi-name
|
送り先の JNDI 名。
|
必須
|
ejb-name
|
このメッセージ駆動型 Bean の名前。
|
必須
|
acknowledge-mode
|
確認応答モード (auto-acknowledge | dups-ok-acknowledge)。
|
省略可能
|
default-transaction
|
詳細なトランザクション属性を設定しない、すべてのメソッドに適用されるトランザクション属性。
|
省略可能
|
destination-type
|
(javax.jms.Queue | javax.jms.Topic)
|
省略可能
|
durable
|
destination-typeが Topic の場合にこの属性を設定すると、恒久サブスクリプションとなる (True | False)。
|
省略可能
|
initial-beans-in-free-pool
|
フリー プール内の Bean の初期数。
|
省略可能
|
max-beans-in-free-pool
|
フリー プール内の Bean の最大数。
|
省略可能
|
message-selector
|
JMS メッセージ セレクタ。
|
省略可能
|
run-as
|
この EJB のロール名を指定する。
|
省略可能
|
run-as-identity-principal
|
ロールを複数プリンシパルにマップする場合のプリンシパル名を指定する。
|
省略可能
|
trans-timeout-seconds
|
トランザクションのタイムアウト (秒数)。
|
省略可能
|
use-caller-identity
|
この EJB が呼び出し側の ID を使用するかどうか (True | False)。
|
省略可能
|
@ejbgen:primkey-field
使用場所 : メソッド
適用対象 : エンティティ Bean
@ejbgen:relation
使用場所 : クラス
適用対象 : エンティティ Bean
属性
|
説明
|
必須
|
multiplicity
|
(one | many)
|
必須
|
name
|
関係の名前。ロールの関係の両端で同じ名前を使用するようにする (一方向でもこの制約が同様に適用される)。
|
必須
|
target-ejb
|
この関係のターゲット EJB 名。
|
必須
|
cascade-delete
|
(True | False)
|
省略可能
|
cmr-field
|
この関係を格納する CMR フィールド。このフィールドは省略可能である。これを指定しない場合、関係は一方向となる。これを指定する場合には、fk-column 属性も合わせて指定する。
|
省略可能
|
fk-column
|
少なくとも 1 つの一方向関係のある場合のみ必要になる。一方向以外の EJB では、相手の主キーを保持するカラムを宣言しなければならない。
|
省略可能
|
joint-table
|
多対多関係のみで必要になる。この関係を含む結合テーブルを格納するのに使用する既存テーブルの名前にすること。複合主キーを使用する場合、これに関わる一連の外部キーをカンマで区切って指定する必要がある。
|
省略可能
|
role-name
|
このロールの名前 (たとえば、「ParentHasChildren」)。指定されない場合、EJBGen が代わりにこれを生成する。関係を継続的に使用しようとする場合には、ロール名を指定する必要がある。
|
省略可能
|
@ejbgen:remote-home-method
使用場所 : メソッド
適用対象 : エンティティ Bean、セッション Bean
属性
|
説明
|
必須
|
transaction-attribute
|
このリモート メソッドのトランザクション属性。指定されない場合、デフォルトのトランザクション属性が使用される。このタグを付けたメソッドが、リモート クラス上に生成される。
|
省略可能
|
@ejbgen:remote-method
使用場所 : メソッド
適用対象 : エンティティ Bean、セッション Bean
属性
|
説明
|
必須
|
isolation-level
|
このメソッドのトランザクション アイソレーションのタイプ。
|
省略可能
|
transaction-attribute
|
このリモート メソッドのトランザクション属性。指定されない場合、デフォルトのトランザクション属性が使用される。このタグを付けたメソッドが、リモート クラス上に生成される。
|
省略可能
|
@ejbgen:resource-env-ref
使用場所 : クラス
適用対象 : すべてのタイプの Bean
属性
|
説明
|
必須
|
name
|
リソース環境参照の名前。
|
必須
|
type
|
リソース環境参照のタイプ (javax.jms.Queue など)
|
必須
|
jndi-name
|
リソースの JNDI 名。
|
省略可能
|
@ejbgen:resource-ref
使用場所 : クラス
適用対象 : すべて Bean のタイプ
属性
|
説明
|
必須
|
auth
|
(Application | Container)
|
必須
|
jndi-name
|
リソースの JNDI 名。
|
必須
|
name
|
リソース名。
|
必須
|
type
|
リソースのタイプ (javax.sql.DataSource など)。
|
必須
|
sharing-scope
|
(Shareable | Unshareable)
|
省略可能
|
@ejbgen:role-mapping
使用場所 : クラス
適用対象 : すべて Bean のタイプ
属性
|
説明
|
必須
|
principals
|
このロールのプリンシパル名 (カンマで区切る)。
|
必須
|
role-name
|
ロール名。
|
必須
|
@ejbgen:select
使用場所 : メソッド
適用対象 : エンティティ Bean
属性
|
説明
|
必須
|
ejb-ql
|
この選択メソッドを定義する EJB-QL。注意 : メソッド名を「ejbSelect」から始めること。
|
必須
|
result-type-mapping
|
返されたオブジェクトを EJBLocalObject または EJBOject にマップするかどうか (Remote | Local)。
|
省略可能
|
weblogic-ejb-ql
|
デプロイメント記述子のものと同じ、Weblogic EJB QL リクエスト。注意 : このリスエストが必要になる場合、EJB QL と WebLogic EJBQL を二重引用符で囲む必要がある。
|
省略可能
|
@ejbgen:session
使用場所 : クラス
適用対象 : セッション Bean
属性
|
説明
|
必須
|
ejb-name
|
このセッション Bean の名前。
|
必須
|
call-router-class-name
|
ホーム メソッド呼び出しのルーティングに使用するクラス名。
|
省略可能
|
default-transaction
|
詳細なトランザクション属性を設定しない、すべてのメソッドに適用されるトランザクション属性。
|
省略可能
|
idle-timeout-seconds
|
ある EJB がキャッシュ内に置かれる最長の時間。
|
省略可能
|
initial-beans-in-free-pool
|
フリー プール内の Bean の初期数。
|
省略可能
|
is-clusterable
|
この Bean がクラスタ対応かどうか (True | False)。
|
省略可能
|
load-algorithm
|
ホームのレプリカ間のバランシングを行うためのアルゴリズムの名前 (RoundRobin | Random | WeightBased)。
|
省略可能
|
max-beans-in-cache
|
キャッシュ内の Bean の最大数。
|
省略可能
|
max-beans-in-free-pool
|
フリー プール内の Bean の最大数。
|
省略可能
|
methods-are-idempotent
|
ステートレス セッション Beanのメソッドが多重呼び出し不変かどうか (True | False)。
|
省略可能
|
run-as
|
この EJB のロール名を指定する。
|
省略可能
|
run-as-identity-principal
|
ロールを複数プリンシパルにマップする場合のプリンシパル名を指定する。
|
省略可能
|
trans-timeout-seconds
|
トランザクションのタイムアウト (秒数)。
|
省略可能
|
type
|
セッション Bean のタイプ (Stateless | Stateful)。この属性が指定されない場合、EJBGen は各自のクラスの ejbCreate() メソッドを調べることによってこのタイプを正確に推測する。
|
省略可能
|
use-caller-identity
|
この EJB が呼び出し側の ID を使用するかどうか (True | False)。
|
省略可能
|
@ejbgen:value-object
使用場所 : クラス
適用対象 : すべて Bean のタイプ
属性
|
説明
|
必須
|
reference
|
他の EJB のクラスにアクセスする時に、Value オブジェクト クラスがどのオブジェクトを参照すべきかを指定する (Local | Value)。
|
必須
|
ejbc
EJB 2.0 および 1.1 のコンテナ クラスを生成およびコンパイルするには、weblogic.ejbc ユーティリティを使用します。EJB コンテナにデプロイするために JAR ファイルをコンパイルする場合は、weblogic.ejbc を使用して、コンテナ クラスを生成する必要があります。
weblogic.ejbc では、次の処理を実行します。
- 指定した JAR ファイルに EJB クラス、インタフェース、および XML デプロイメント記述子を配置する。
- すべての EJB クラスおよびインタフェースが EJB 仕様に準拠しているかどうかをチェックする。
- EJB 用の WebLogic Server コンテナ クラスを生成する。
- RMI コンパイラを使用して各 EJB コンテナ クラスを実行して、クライアントサイドの動的プロキシとサーバサイド バイト コードを作成する。
注意: ejbc は、JAR ファイルおよび展開ディレクトリの両方を入力として受け付けます。
出力 JAR ファイルを指定すると、ejbc は、生成するファイルをすべて JAR ファイルに入れます。
ejbc は、デフォルトで javac をコンパイラとして使用します。パフォーマンスを向上させるには、-compiler フラグを使用して別のコンパイラ (Symantec の sj など) を指定します。
WebLogic 固有の XML デプロイメント記述子ファイルの複数バージョンが Web サイト上で公開され利用可能ですが、weblogic.ejbc で使用される内部バージョンは製品に同梱されています。
weblogic-ejb-jar.xml のパブリック バージョンの場所については、DOCTYPE ヘッダ情報を参照してください。weblogic-cmp-rdbms-jar.xml のパブリック バージョンの場所については、DOCTYPE ヘッダ情報を参照してください。
ejbc の利点
ejbc ユーティリティの利点は以下のとおりです。
- ejbc のエラーを簡単に特定して修正できる。
コマンド ラインで ejbc を実行中にエラーが発生すると、エラー メッセージが表示され、ejbc が終了します。
それに対して、コンパイルをデプロイメント時に行うことにした場合、コンパイル エラーが発生すると、サーバはデプロイメントが失敗しても作業を続けます。デプロイメントの失敗の原因を特定するには、サーバ出力を調べ、問題を修正し、再デプロイする必要があります。
- デプロイメントの前に ejbc を実行すると、Bean のコンパイル時間を短縮できる。
たとえば、.jar ファイルを 3 つのサーバのクラスタにデプロイする場合、.jar ファイルが各サーバにコピーされてデプロイされます。.jar ファイルがコンパイルされていない場合、各サーバは、デプロイメント時にファイルをコンパイルする必要があります。
ejbc の構文
prompt> java weblogic.ejbc [options] <source directory or jar file>
<target directory or jar file>
注意: 出力先が JAR ファイルの場合、出力 JAR には入力 JAR と異なる名前を付けなければなりません。
ejbc の引数
引数
|
説明
|
<source directory or jar file>
|
コンパイル済み EJB クラス、インタフェース、および XML デプロイメント ファイルを格納する展開ソース ディレクトリまたは JAR ファイルを指定する。
|
<target directory or jar file>
|
ejbc が出力 JAR を格納する送り先 JAR ファイルまたはデプロイメント ディレクトリを指定する。出力 JAR ファイルを指定した場合、ejbc は元の EJB クラス、インタフェース、および XML デプロイメント ファイルだけでなく、ejbc が生成する新規コンテナ クラスも JAR に格納する。
|
ejbc のオプション
オプション
|
説明
|
-help
|
コンパイラで使用可能なすべてのオプションのリストを出力する。
|
-version
|
ejbc のバージョン情報を出力する。
|
-basicClientJar
|
EJB 用に生成されたクライアント JAR のデプロイメント記述子を含まない。
|
-dispatchPolicy <queueName>
|
WebLogic Server で実行スレッドを取得するために EJB が使用するコンフィグレーション済み実行キューを指定する。 詳細については、「実行キューによるスレッド使用の制御」を参照。
|
-forceGeneration
|
EJB クラスを強制的に生成する。このフラグを使用しない場合、クラスが再生成されないことがある (必要ないと判断された場合)。
|
-idl
|
リモート インタフェース用に CORBA インタフェース定義言語 (IDL) を生成する。
|
-idlNoValueTypes
|
値タイプ、およびそれを含むメソッドと属性を生成しない。
|
-idlFactories
|
値タイプ用にファクトリ メソッドを生成する。
|
-idlVisibroker
|
Visibroker 4.5 C++ と多少の互換性を持つ IDL を生成する。
|
-idlOrbix
|
Orbix 2000 2.0 C++ と多少の互換性を持つ IDL を生成する。
|
-idlOverwrite
|
既存の IDL ファイルを上書きする。
|
-idlVerbose
|
IDL の生成中に verbose 情報を表示する。
|
-idlDirectory <dir>
|
ejbc が IDL ファイルを生成するディレクトリを指定する。デフォルトでは、ejbc はカレント ディレクトリを使用する。
|
-idlMethodSignatures <>
|
IDL コードを生成するトリガとして使用されるメソッド シグネチャを指定する。
|
-iiop
|
EJB 用に CORBA のスタブを生成する。
|
-iiopDirectory <dir>
|
IIOP のスタブ ファイルを記述するディレクトリを指定する (デフォルトでは、対象ディレクトリ または JAR)。
|
-J
|
weblogic.ejbc のヒープ サイズを指定する。次のように指定する。 java weblogic.ejbc -J-mx256m input.jar output.jar
|
-keepgenerated
|
コンパイル中に生成される中間 Java ファイルを保存する。
|
-compiler <compiler name>
|
使用する ejbc のコンパイラを設定する。
|
-normi
|
RMI スタブの生成を中止する場合に Symantec の Java コンパイラ sj に渡される。それ以外の場合、sj は EJB には不必要な独自の RMI スタブを作成する。
|
-classpath <path>
|
コンパイル時に使用する CLASSPATH を設定する。 これにより、システムまたはシェル CLASSPATH が付加される。
|
-convertDD
|
最新のデプロイメント記述子への更新を試みる。
|
ejbc の例
次の例では、c:¥%SAMPLES_HOME%¥server¥src¥examples¥ejb¥basic¥containerManaged¥build 内の入力 JAR ファイルに対して javac コンパイラを使用します。出力 JAR ファイルは、c:¥%SAMPLES_HOME%¥server¥config¥examples¥applications 内に置かれます。
prompt> java weblogic.ejbc -compiler javac c:¥%SAMPLES_HOME%¥server¥samples¥src¥examples¥ejb¥basic¥containerManaged¥build¥std_ejb_basic_containerManaged.jar c:%SAMPLES_HOME%¥server¥config¥examples¥ejb_basic_containerManaged.jar
次の例では、JAR ファイルが EJB 1.1 仕様に準拠しているかどうかをチェックして、WebLogic Server コンテナ クラスを生成しますが、RMI スタブは生成しません。
prompt> java weblogic.ejbc -normi c:%SAMMPLES_HOME%¥server¥src¥examples¥ejb¥basic¥containerManaged¥build¥std_ejb_basic_containerManaged.jar
DDConverter
DDConverter は、以前のバージョンの EJB デプロイメント記述子を本バージョンの WebLogic Server に準拠した EJB デプロイメント記述子に変換するコマンド ライン ユーティリティです。WebLogic Server EJB コンテナは、EJB 1.1 および EJB 2.0 文書型定義 (DTD) を含む EJB 1.1 および EJB 2.0 仕様をサポートしています。各 WebLogic Server EJB デプロイメントには、以下のファイルの標準デプロイメント記述子が含まれています。
- ejb-jar.xml
J2EE 固有のEJB デプロイメント記述子を含む XML ファイル。
- weblogic-ejb-jar-.xml
WebLogic 固有のEJB デプロイメント記述子を含む XML ファイル。
- weblogic-cmp-rdbms-jar.xml
WebLogic 固有のコンテナ管理による永続性 (CMP) デプロイメント記述子を含む XML ファイル。
DDConverter で利用できる変換オプション
DDConverter コマンドライン ユーティリティには、次の変換オプションがあります。
- 以前のバージョンの WebLogic Server の Bean を変換します (WLS)。
- 以前のバージョンの EJB 仕様の CMP および CMP 以外の Bean を変換します。
次の表は、DDconverter の各種変換オプションのリストです。
表8-1
DDConverter ユーティリティの変換オプション
|
WLS
|
CMP 以外のEJB
|
EJB CMP
|
変換前 変換後
|
変換前 変換後
|
変換前 変換後
|
WLS 4.5 - WLS 7.0
|
注意 1 参照
|
EJB CMP 1.0 - EJB CMP 1.1
注意 2 参照
|
WLS 4.5 - WLS 7.0
|
EJB 1.1 - EJB 2.0
|
EJB CMP 1.0 - EJB CMP 2.0
|
WLS 5.x - WLS 7.0
|
EJB 1.1 - EJB 2.0
|
注意 3 参照
|
WLS 6.x - WLS 7.0
|
EJB 1.1 - EJB 2.0
|
EJB CMP 1.1 - EJB CMP 2.0
|
注意: EJB 1.0 の非 CMP を EJB 1.1 の非 CMP に変換する必要はありません。 非CMP EJB 1.1 のデプロイメント記述子は、非 CMP EJB 2.0 のデプロイメント記述子と同じだからです。
注意: EJB CMP 1.0 を EJB CMP 1.1 に変換する際には、DDConverter のコマンドライン オプション -EJBVer を使用します。このオプションの内容については、DDConverter のオプションを参照してください。
注意: WLS 5.x CMP 1.1 Bean と WLS 7.0 CMP 1.1 Bean は異なるものですが、WLS 5.1 CMP 1.1 Bean はソースコードを変更することなく WebLogic Server 7.0 上で動きます。
DDConverter を使用した後は必ず Bean を再コンパイルします。weblogic.ejbc を使用し、改めて生成した JAR ファイルをデプロイすることをお勧めします。Bean を再コンパイルすることにより、そのコードが確実に EJB 仕様に準拠するようになり、また、サーバ起動時の再コンパイル処理を省略できるので時間を短縮できます。
- WLS 4.5 EJB 1.0 Bean を WLS 7.0 EJB 1.1 Bean に変換する場合、DDConverter への入力は WebLogic 4.5 デプロイメント記述子のテキストです。 WebLogic 7.0 デプロイメント記述子だけを含む JAR ファイルが出力されます。weblogic-ejbc を起動してソースコードに何らかの変更を加える必要があるかどうかを確かめ、DDConverter による EJB の変換の手順に従います。DDConverter ユーティリティの変換オプションの表の最初の行を参照してください。
- WLS 4.5 EJB 1.1 Bean を WLS 7.0 EJB 2.0 Bean に変換する場合、DDConverter への入力は WebLogic 4.5 デプロイメント記述子のテキストです。 WebLogic 7.0 デプロイメント記述子だけを含む JAR ファイルが出力されます。weblogic-ejbc を起動してソースコードに何らかの変更を加える必要があるかどうかを確かめ、DDConverter による EJB の変換の手順に従います。DDConverter ユーティリティの変換オプションの表の 2 行目を参照してください。
- WLS 7.0 の下位互換性により、ソースコードを変更することなく WLS 5.x EJB 1.1 Bean を WLS 7.0 にデプロイできます。WLS 7.0 は、以前のバージョンの WLS のBean を検出し、再コンパイルし、デプロイします。しかし、DDConverter を使って WLS 5.x EJB 1.1 Bean を WLS 7.0 EJB 2.0 Bean にアップグレードすることをお勧めします。
WLS 5.x EJB 1.1 Bean を WLS 7.0 EJB 2.0 Bean に変換する場合、DDConverter への入力は WebLogic 5.1 JAR ファイルです。このファイルには、デプロイメント記述子ファイルとクラス ファイルが含まれます。 ここでは、WebLogic 7.0 デプロイメント記述子ファイルと必要なクラス ファイルすべてが含まれた 1 つの JAR ファイルに出力が格納されます。DDConverter ユーティリティの変換オプションの表の 3 行目を参照してください。
ソースコードをほとんど、または、まったく変更せずに、CMP 以外の Bean を EJB 2.0 Bean に変換することができます。これを行うためには、output.jar ファイルに対し weblogic.ejbc を実行し、生成された JAR ファイルをデプロイします。CMP Bean の場合、DDConverter による EJB の変換の手順に従い、ソースコードに変更を加える必要があります。
DDConverter による EJB の変換
WebLogic Server で使用するために以前のバージョンの EJB を変換するには、次の手順に従います。
- DDConverter の構文に示したコマンド ライン形式に従って、デプロイメント記述子を DDConverter に入力します。
JAR ファイルが出力されます。
- その JAR ファイルから XML デプロイメント記述子を抽出します。
- avaSoft EJB 仕様に従って、ソースコードを変更します。
- weblogic.ejbc を使用して JAR ファイルを作成し、抽出した XML デプロイメント記述子とともに変更済みの Java ファイルをコンパイルします。
- JAR ファイルをデプロイします。
DDConverter の構文
prompt> java weblogic.ejb20.utils.DDConverter [options] file1 [file2...]
DDConverter の引数
DDConverter は、file1 [file2...] といった引数をとります。このファイルは次のどちらかになります。
- EJB 1.0 準拠のデプロイメント記述子を含むテキスト ファイル
- EJB 1.1 準拠のデプロイメント記述子を含む JAR ファイル
DDConverter は、テキスト デプロイメント記述子の EJB の beanHomeName プロパティを使用して、出力される ejb-jar.xml ファイルで新規の ejb-name 要素を定義します。
DDConverter のオプション
次の表は、DDConverter のコマンドライン オプションのリストです。
オプション
|
説明
|
-d destDir
|
JAR ファイルが出力される送り先ディレクトリを指定する。
このオプションは必須。
|
-c jar name
|
ソース ファイルのすべての Bean を組み合わせる JAR ファイルを指定する。
|
-EJBVer output EJB version
|
2.0 または 1.1 などの出力 EJB バージョン番号を指定する。デフォルトは 2.0。
|
-log log file
|
ddconverter.log の代わりにログ情報の格納先となるファイルを指定する。
|
-verboseLog
|
変換に関して ddconverter.log に格納する補足情報を指定する。
|
-help
|
DDConverter ユーティリティで使用可能なすべてのオプションのリストを出力する。
|
DDConverter の例
次の例では、WLS 5.x EJB 1.1 Bean を WLS 7.0 EJB 2.0 Bean に変換します。
サブディレクトリ destDir に JAR ファイルが作成されます。
prompt> java weblogic.ejb20.utils.DDConverter -d destDir Employee.jar
ここでは、Employee Bean が WLS 5.x EJB 1.1 JAR ファイルです。
weblogic.Deployer
weblogic.Deployer コマンドライン ユーティリティは、非推奨となった以前の weblogic.deploy ユーティリティに代わり、WebLogic Server 7.0 で新たに追加されたものです。weblogic.Deployer ユーティリティは、WebLogic Server デプロイメント API にコマンドライン インタフェースを提供する、Java ベースの開発ツールです。このユーティリティは、コマンドライン、シェル スクリプト、または、Java 以外の自動化されたあらゆる環境からデプロイメントを実行する管理者と開発者向けに開発されたものです。
weblogic.Deployer の使い方とコマンド リストについては、「WebLogic Server デプロイメント」を参照してください。
weblogic.deploy
注意: このツールはこのリリースでは使用されません。 コマンドライン ツール、weblogic.Deployer を使用することを強くお勧めします。より洗練されたデプロイメント オプションが提供されています。
weblogic.deploy コマンドライン ユーティリティ ツールは、EJB をデプロイする際に使用します。EJB 準拠の JAR ファイルを指定すると、JAR の EJB は動作中の WebLogic Server にデプロイされます。
deploy の構文
prompt> java weblogic.deploy [options] [list|deploy|undeploy|update] password {name} {source}
deploy の引数
引数
|
説明
|
list
|
指定した WebLogic Server のすべての EJB デプロイメント ユニットをリストする。
|
deploy
|
EJB JAR を指定したサーバにデプロイする。
|
undeploy
|
既存の EJB デプロイメント ユニットを指定したサーバから削除する。
|
update
|
EJB デプロイメント ユニットを指定したサーバに再デプロイする。
|
password
|
WebLogic Server のシステム パスワードを指定する。
|
{name}
|
EJB デプロイメント ユニットの名前を識別する。この名前は、deploy または console ユーティリティを使用して、デプロイメント時に指定する。
|
{source}
|
EJB JAR ファイルの絶対パス、または EJB デプロイメント ディレクトリの最上位までのパスを指定する。
|
deploy のオプション
オプション
|
説明
|
-help
|
deploy ユーティリティで使用可能なすべてのオプションのリストを出力する。
|
-version
|
ユーティリティのバージョンを出力する。
|
-port <port>
|
JAR ファイルをデプロイするために使用する WebLogic Server のポート番号を指定する。このオプションを指定しなかった場合、deploy ユーティリティはポート番号 7001 を使用して接続を試みる。
|
-host <host>
|
JAR ファイルをデプロイするために使用する WebLogic Server のホスト名を指定する。このオプションを指定しなかった場合、deploy ユーティリティはホスト名 localhost を使用して接続を試みる。
|
-user
|
JAR ファイルをデプロイするために使用する WebLogic Server のシステム ユーザ名を指定する。このオプションを指定しなかった場合、deploy は、システム ユーザ名 system を使用して接続を試みる。システム ユーザ名を定義するには、weblogic.system.user プロパティを使用する。
|
-debug
|
デプロイメント プロセス中に詳細なデバッグ情報を出力する。
|