Context ic = new InitialContext();
Object o = ic.lookup("EJB");
AdviceHome home = (AdviceHome) PortableRemoteObject.narrow(o, AdviceHome.class);
上記はNarrowキャストを使用するコードです。私の本では、サーバがIIOPを使用していると仮定するための狭いキャストの使用について説明しています(ただし、サーバは実際にRMIを使用しています)。EJB:サーバがIIOPプロトコルを使用する場合、ナローキャストはクライアントコードを破ることがない理由を説明してください。
そして、この本はまだ書かれています:
クライアントコードは、ベンダーに依存しないではありません! IIOPクライアントを中断します使用しないサーバ上 Beanを再デプロイするので
私は二つの点Iドンを持っているあなたは、狭い使用しない場合は、他の言葉では、あなたは は、ポータブルアプリを持っていません。
1)IIOPプロトコルは普通の奇数RMIプロトコルよりも大きいので、小さなオブジェクトを大きなオブジェクトにキャストしましたか?
2)なぜcliendコードがそれほど壊れないのか、私は本当に分かりません。この場合、IIOPを使用するサーバーがクライアントでコードを破るのはなぜですか?クライアントは、EJBObjectインターフェイスで定義されたいくつかのメソッドを呼び出すだけであるためです。クライアントコードがどのプロトコルをどのサーバーに使用するかによってクライアントコードがどのように変わるかは想像もできません。
明確な説明と簡単な例でお手伝いしてください。
おかげ:)