今日、私はEJBでいくつかの実験を行いました。変更されたインタフェースでEJBを呼び出す
のJavaEE 6
のWebsphereの8.0.xの
Iは、いくつかのリモート・メソッドを定義するインターフェイスを有する:
interface Calculator{
int add(int x, int y);
int mul(itn x, int y);
}
このインターフェイスは、EJBによって実現されます。
さらに私は別のアプリケーション(耳)からCalculator-EJB を呼び出す別のEJBを持っています。だから合計私は 2つの耳のファイルを展開し、すべて正常に動作します。
私はCalcメソッドのインターフェイスを変更しましたが、mulメソッドを削除しました。 しかし、実装するEJBクラスでは、mulメソッドがまだ実装されています。 @overrideアノテーションを削除しました。 変更されたインターフェイスを実装しているEJBで耳を再配置しました。
私の驚いたことに、他の耳のアプリケーションは、まだ mulメソッドを呼び出すことができます。
これはEJB標準の一部ですか?
その後、Calculatorインターフェイスの名前をCalculator2 に変更し、この新しいインターフェイスを実装するEJBを再デプロイしました。
旧式のCalculator インターフェイスしか持たない他のearアプリケーションは、新しくCalculator2インターフェイスを実装した新しく実装されたEJBのメソッド を依然として呼び出すことができます。
同じ質問:これはEJB標準の一部ですか?
trueの場合、インターフェイスなしのビューのように動作しますが、クライアントは別のappliaction/earにあり、注入のために(古い)インターフェイスを使用します。それが奇妙な作品 – coder