私は次のように宣言された単純なBeanを持っています
@Local(LocalInt.class)
@Remote(RemoteInt.class)
@Stateless(name="name")
public MyEJB_Implementation {
//methods
}
ご覧のとおり、これはローカルインターフェイス(ローカルクライアント用)とリモートインターフェイス(リモートクライアント用)を持つ単一のBeanです。
クライアント(リモートおよびローカル)は、次のようにインスタンスを取得します。
ctx = new InitialContext(environment);
ctx.lookup("name");
LocalInt
コンテナは、インターフェイスを実装するプロキシを配信するか、インターフェイスを実装するプロキシを配信するかをどのように決定しRemoteInt
ますか?(ルックアップにまったく同じ「名前」を使用しているため)。
つまり、JNDIレジストリは、ルックアップが同じJVMで実行されるのか、リモートサーバーから実行されるのかをどういうわけか知っていますか?
また、この区別(ローカル呼び出しとリモート呼び出しの場合)は、「ルックアップ」のセマンティクスと衝突しませんか?(1つの名前に対して正確にゼロまたは1つのオブジェクトが登録されている必要があります。この場合、同じ名前で2つのオブジェクト(ローカルとリモート)があるようです)。
ありがとうございました。