質問

私が遭遇している問題を要約するために、ライブラリのバージョンAを使用するEJBがあります(dep-va.jarと呼びましょう)。 DEP-VA.JARは、EJBのJARファイルのルートにパッケージ化されています。アプリケーションサーバーのドメインLIBフォルダーには、同じライブラリのバージョンBが含まれています(DEP-VB.JARと呼びましょう)。 EJBを呼び出すと、dep-va.jarではなくdep-vb.jarファイルがロードされているため、エラーが発生します。

この質問の最初の部分は、Sun One Application Server v9.1が互いにEJBを分離するのだと思いますか?私はそれがそうであるという印象を受けていました。しかし、別のアプリケーションがDEP-VB.JARをロードしたように思われ、このEJBは独自のロードなしで直接使用しています。

2番目の質問は、アプリサーバーがEJBを分離する場合、アプリケーションサーバーのLIBフォルダーを見る前にEJBのJARファイルから依存関係をロードするのですか?私はこれも真実であると印象を受けていましたが、多分そうではありません...

DEP-VB.JARがDEP-Va.jarではなくロードされている理由を説明するために、Sunアプリケーションサーバーに十分な精通している人はいますか?アプリケーションサーバーのlibフォルダーにあるものを変更せずに、dep-va.jarをロードする方法はありますか? (サーバー上の他のアプリケーションに影響を与える可能性のあることをすることをheします)

ありがとう。

役に立ちましたか?

解決

この質問の最初の部分は、Sun One Application Server v9.1が互いにEJBを分離するのだと思いますか?私はそれがそうであるという印象を受けていました。しかし、別のアプリケーションがDEP-VB.JARをロードしたように思われ、このEJBは独自のロードなしで直接使用しています。

によると サフー (これはGlassfish開発者です)、 Java EEスペックはそうです いいえ 単一の耳のモジュール間の分離をクラスの読み込みに委任して、動作がアプリサーバーと別のアプリサーバーとは異なる可能性があるように. 。太陽の1つで、私の理解 ドキュメンテーション EJB-jarsが分離されているということです。

2番目の質問は、アプリサーバーがEJBを分離する場合、アプリケーションサーバーのLIBフォルダーを見る前にEJBのJARファイルから依存関係をロードするのですか?私はこれも真実であると印象を受けていましたが、多分そうではありません...

それは親第一の戦略です(そして私の知る限り、太陽は委任モードを変更できます WebAppsのみ).

そうは言っても、リストした場合はどうなりますか dep-vA.jar の中に Class-Path のエントリ MANIFEST.MF ejb-jarの?

参照してください

他のヒント

私はその特定のサーバーを使用していませんが、WebSphereでは、parent_firstまたはparent_lastクラスロードを使用するオプションがあることを知っています。サーバーに上がる前に、クラスが最初に耳からロードされるParent_lastに相当するものを探しています。

アプリサーバーでは、そのような構成が可能性があると仮定します。常に、アプリケーション固有のジャーを他のものにロードするように施行できるはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top