質問

OC4J 10.1.2.3から10.1.3.1.4への移行に問題があります。問題は、複数のEJB(すべてが2.1であり、EJB 3.0がない)を持つアプリケーションの場合です。 Jdeveloperは、デフォルトのejb-jar.xml(JdeveloperがスタンドアロンOC4Jインスタンスで実行するために必要なもの)を取得し、各EJB JARモジュールに何も何もパッケージ化しません。これにより、デプロイ時にアプリサーバーが各EJB JARモジュールをドリルし、同じejb-jar.xmlファイルをN回見つけます(N = EJBモジュールの数)。これにより、EJB参照が重複し、" java:comp / env / ejb / EJBName"などのJNDIルックアップが中断されます。したがって、3つのEJB、EJB1、EJB2およびEJB3を持つアプリをデプロイすると、アプリサーバーは3つではなく9つのEJBを登録します。かなり悲惨です...

副次的注意:WebアプリのJNDIルックアップコードが" ejb / EJBName"にのみ屈折される場合に機能します。ただし、これは望ましくありません。

役に立ちましたか?

解決 2

問題は、展開プロファイルの複数の参照でした。各EJBの展開プロファイルを作成しました。つまり、各EJBには独自のejb-jar.xmlがありました(このファイルにはプロジェクト内のすべてのEJBの説明が含まれていました)。そのため、JDeveloperはEJBを作成するたびに、生成された各EJBにすべてのEJBの記述子を配置し、NxNの量の参照を引き起こしました。したがって、Nx(N-1)の追加参照。

今、重要な点は、Oracle Application Server 10.1.2.3.0以降では、これらの重複参照を気にしなかったことです。しかし、見てわかるように、10.1.3.1.4はかなり異なるバージョンであり、これは壊れていました。

修正:すべてのEJBクラスとそれらが使用するPOJOを含む1つのEJBデプロイメントプロファイルのみを持つようにします。 EJBごとに1つのEJBプロファイルが存在する前に覚えておいてください...これは、Jdeveloper(これはくだらないIMHOです)が有効なEARを正しく生成できるようにすることでした。 JdeveloperとOracleのApplication Serverのがらくたの組み合わせがこの原因です。

他のヒント

Oracleドキュメントを参照して、どちらが該当するかを確認してください。 Oracle® Containers for J2EE Enterprise JavaBeans開発者ガイドは良いスタートです Oracle®によるとContainers for J2EEサービスガイド、第2章:JNDIの使用 " ejb / EJBName"という形式を使用する場合「ローカル」を実行します見上げる。完全なフォームを使用する場合は、「グローバルJNDIルックアップの有効化」を確認する必要があります。 " Using JNDI"のセクション章。

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