クライアントとサーバーを同じパッケージにする必要はありません。彼らは両方とも、共用インターフェースを含む同じパッケージに依存する必要があります。
リンクされた質問で、インターフェイスに問題がありました.OPは、2つの別々のパッケージに同じ名前の2つのインターフェイスを宣言しました。そのため、キャストに失敗し、6F00
ステータスがスローされました。あなたのクライアントコードでインターフェース2.Use
package com.test.mypackage.a;
public interface SharedObject extends Shareable {
public void foo();
}
:サーバー側のパッケージに
1.Declare共有インターフェースpublic
:
どうShareable
インタフェースを使用するには:
package com.test.mypackage.b;
import com.test.mypackage.a.SharedObject;
...
SharedObject obj = (SharedObject) JCSystem.getAppletShareableInterfaceObject(svrAid, (byte)0);
- クライアントアプレットを構築するときは、サーバアプレットas a libraryを使用してください。
- サーバーアプレット
cap
を先にロードしてください。
- クライアントアプレット
cap
ファイルを読み込みます。
JC APIドキュメントから引用:**共有可能なインターフェイス:**共有メソッドのセットを定義する** _anインターフェイス。これらのインタフェースメソッドは、 を実装しているオブジェクトが別のコンテキストでアプレットによって所有されている場合に、あるコンテキストでアプレットから呼び出される です。コンテキストは何とかパッケージの同義語です。 – Abraham
お返事いただきありがとうございます。私はあなたの答えを理解できません。私は簡単な質問がありますか?私は2つの独立したアプレットを持っていて、私は別のものに最初のアプレットでいくつかの関数を使用したい。これらのアプレットは完全に異なっています。パッケージAIDとアプレットAIDが異なることを意味します。共有可能なインターフェースで実装できますか? –
アブラハムとヴォイタにもう一度感謝します。 「彼らは共有されたインターフェイスを含む同じパッケージに依存している必要があります。あなたはそれについてもっと説明できますか?パッケージとはコンテキストを意味しますか?同じパッケージに依存するカードに2つの異なるアプレットをインストールする必要がありますか? –