内からリモートインタフェースが同じ EJB-JARまたはEAR内からリモート@remote
インタフェースを呼び出して注入すると、アプリケーション・サーバーの使用RMI/RMI-IIOPになるだろうか?同じEJB-JARまたはEAR
また、アプリケーションサーバーは多くのインテリジェントで、@local
インターフェイスを呼び出すかのようにローカルでこの呼び出しを実行しますか?
内からリモートインタフェースが同じ EJB-JARまたはEAR内からリモート@remote
インタフェースを呼び出して注入すると、アプリケーション・サーバーの使用RMI/RMI-IIOPになるだろうか?同じEJB-JARまたはEAR
また、アプリケーションサーバーは多くのインテリジェントで、@local
インターフェイスを呼び出すかのようにローカルでこの呼び出しを実行しますか?
@localコールの参照渡しと@remote呼び出しが値渡しであるため、コンテナは本当に@localコールを行うべきではありません。ただし、コンテナは@remoteコールを最適化して、完全なRMI/IIOPネットワークスタックにヒットしないようにすることができます。 WebSphereがこのような「ローカル」最適化を行っていることを思い出して、私は他のベンダーと話すことができません。
[履歴:WebSphereの初期EJB3以前のバージョンでは、 "@localのように@remoteを作ってください"という道徳的な対応を可能にするオプションがありましたが、それ以降のバージョンではこれを提供していないと思います)
'@ remote'と' @ local'の両方でセッションBeanに注釈をつけ、 '@ EJB' DIを使って同じEARの中から呼び出すとどうなりますか?この場合、App Serverの動作はどうなりますか? –
これは、クライアントがアクセスする方法によって異なります。ローカルクライアントとリモートクライアントの2つのパスをEJBに作成しただけです。クライアントがローカルを使用している場合、ローカル動作を取得します。この2つのケースでクライアント側の注入がどのように見えるかはわかりません。自分で試したことはありません。 – djna
@EJBで注入されるフィールドのタイプによって異なります。いずれかの味を注入することができるはずです。もちろん、呼び出し元と呼び出し先が参照渡しデータを変更しないように注意する必要があります。 –