- PR -

WebSphereのプロジェクト間参照

1
投稿者投稿内容
KORO
会議室デビュー日: 2003/06/01
投稿数: 4
投稿日時: 2004-04-05 20:55
お世話になります。KOROと申します。

現在、WebSphere V5.0にてWebシステムの勉強を行っているのですが
プロジェクト間参照のやりかたが分からず困っています。

まず、WAS 5.0にて「Webプロジェクト」を作成後、新規で「EJBプロジェクト」
を作成します。ここからなんですが、「EJBプロジェクト」内のクラスから
「Webプロジェクト」内のクラスをimportすることはできるのですが、サーバテスト
環境にて実行すると、「EJBプロジェクト」のjarを開始する部分で「java.lang.NoClassDefFoundError」が発生してしまいます。
エラーログには「testEJB.jar [class com.ibm.ws.runtime.component.DeployedModuleImpl] に対する addEjbModuleが失敗しました。」と表示されています。


JavaもWebSphereも初心者なので、エラーの原因がまったく分かりません。。
WebSphere V5.0はトライアル版を使っています。

別プロジェクトのクラスを参照するといったやり方はできないのでしょうか?
それとも、何か設定が必要なのでしょうか?

何かご存知の方がおりましたら教えていただきたいと思います。
宜しくお願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-04-05 21:16
Webアプリケーションのクラスローダは通常 EJB のクラスローダの小クラスローダとして作られますので、
Web->EJB の参照はできても
EJB->Web の参照はできません。
当該クラスを EJB の jar ファイルに入れるか、EJB jar のマニフェストクラスパスに通しましょう。

そもそも、EJB は UI に依存しないビジネスロジックを隠蔽したコンポーネントですので Web 層にしか存在しないクラスを使うのはちょっと変です。
↓これ、WebLogic のドキュメントですが基本は WAS も同じはずです。
http://edocs.beasys.co.jp/e-docs/wls/docs81/programming/classloading.html

[ メッセージ編集済み 編集者: インギ 編集日時 2004-04-05 21:18 ]
KORO
会議室デビュー日: 2003/06/01
投稿数: 4
投稿日時: 2004-04-05 21:59
インギさん、ご返信ありがとうございます。


さっそく、資料HPを参照したのですが。。ほとんど理解できませんでした。。
EJBプロジェクトの「MANIFEST.MF」に「Webプロジェクト」のwarファイルを設定
すればよいのでしょうか?。。といっても設定の仕方がわかりません。
やはり知識の無さと、つくり方が悪いのかもしれません。。

「Webプロジェクト」と「EJBプロジェクト」で共通のクラスを参照するには、
「EJB」プロジェクト内に参照先のクラスを置き、「Webプロジェクト」より
参照するやり方が正当なやり方なのでしょうか。。

手元にあるWAS V4.0.3のWebシステムのサンプルで、
「EJB」->「Web」の参照を行っていたので参考にしてつくっていたのですが。。

難しいですね。
あきらめずに色々試してみたいと思います。

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-04-05 23:53
>EJBプロジェクトの「MANIFEST.MF」に「Webプロジェクト」のwarファイルを設定
>すればよいのでしょうか?。。といっても設定の仕方がわかりません。
マニフェストクラスパスに通すのは war ではなく、lib以下のライブラリ、または WEB-INF/classes ディレクトリですね。
#WASが展開ディレクトリ形式でデプロイできるのであれば・・・

>「Webプロジェクト」と「EJBプロジェクト」で共通のクラスを参照するには、
>「EJB」プロジェクト内に参照先のクラスを置き、「Webプロジェクト」より
>参照するやり方が正当なやり方なのでしょうか。。
はい。その通りです。EJB jar 内に配置されているクラスは同じ ear 内の Webアプリケーションから参照できるはずです。

よくわからなければ、ひとまずサポートに問い合わせてみましょう・・・・
skulker
常連さん
会議室デビュー日: 2003/11/13
投稿数: 41
投稿日時: 2004-04-06 08:37
WebSphereユーザならWSDDは必ず見るべき。
http://www-6.ibm.com/jp/software/websphere/developer/tecflash/1.html
あとRedbooksにも目を通す必要があります。
http://publib-b.boulder.ibm.com/redbooks.nsf/portals/Websphere

あと、WAS (WebSphere Application ServerとおっしゃっているのはWSAD (WebSphere Studio Application Developer)の間違いでは? WebSphereファミリーはやたらと製品多いので間違いやすいですが。
1

スキルアップ/キャリアアップ(JOB@IT)