- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
----
//ここにコンテンツを記述します。
***クラスパスの通し方。 [#ed7268dd]
J2EEプロジェクトの構成は
EAR -> EJBプロジェクト(jarファイル) + WARプロジェクト(warファイル)
となりますが、クラスファイルの参照関係は
EAR -> EJB -> WAR
となります。つまりEAR内のjarファイルはEJB、WARともに参照可能だけど、EJBがWARファイルのクラスやjarファイルを参照する事は許されていません((確証なし。。J2EEの仕様?))
EAR <- EJB <- WAR
となります。つまりEAR内のjarファイルはEJB、WARともに参照可能だけど、EJBがWARファイルのクラスやjarファイルを参照する事は許されていないようです((確証なし。。J2EEの仕様?))。つまりWARだけが参照するクラスファイルやjarファイルはWARだけで開発するときのようにWEB-INF/libに置けばよいのですが、EJBでも参照するクラスなどはEAR内に置くのがよいようです((Log4jのjarなどかな))。
#ref(全体像.png)
ところでWebSphere Studio内で開発するときは以下のようにパスを通しておけばよいようです。
-EAR内のファイルをEJBで参照する
--EARのプロジェクトのルートディレクトリに該当jarを配置。ユーティリティJARというディレクトリにそのjarが表示される。
--EJBプロジェクト内で、META-INF/ejb-jar.xmlをJAR依存関係エディタで開く
--依存関係の欄に、ユーティリティJARのファイルが一覧されているので、使用したいjarにチェックを入れる
--EJBプロジェクト内で、パスが通る。完了。
#ref(JAR依存関係エディタEJB.png)
-EAR内のファイルをWARで参照する、EJB内のファイルをWARで参照する
--先のように、EAR内のファイルを参照するEJBプロジェクトがすでにある場合は、WARプロジェクトのプロパティ>>Javaのビルドパス>>プロジェクトで、該当するEJBにチェックする。すると、EARやEJB内のファイルにパスが通る。
--EAR内のファイルを参照するEJBがない場合は、WARプロジェクトのプロパティ>>Javaのビルドパス>>ライブラリで、直接EARのjarにパスを通す。。だけだとランタイム時にクラスが見つからないってなってしまった。これってムリなの???
--WARも同じで、META-INF/MANIFEST.MFをJAR依存関係エディタで開いて、依存関係でチェックを入れればOKみたい。
#ref(JAR依存関係エディタWAR.png)
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}