質問

私は、RMI呼定義されている。

public void remoteGetCustomerNameNumbers(ArrayList<String> customerNumberList, ArrayList<String> customerNameList) throws java.rmi.RemoteException;

この機能はデータベースルックアップとpopulatesのArrayLists.の呼び出し機能がいます。この作品とベクトルです。

いのベクトルから、わかりやすく伝えるためのこなれます。私のアイデアをいくような還元のキーと値のペアがもっと知りたい場合は取得できます。

更新:
私の答えがこれまでまった。したことがなかったので知られるネットワークコストでは意味があるリワーク機能を返しますLinkedHashMapの代わりに二つのArrayLists.

役に立ちましたか?

解決

としての戦いの記載とすることができますリモートオブジェクト。いクラスを作成するにおトを実装した。いつでも渡ししますので何かを実装したリモート引数として、いつの受信側が使用で回転し、リモートコ 呼び出し側に働けるオブジェクトです。

他のヒント

引数のRMIコserialised.Deserialisationのサーバーのコピーを作成します。場合のリストはクライアント側では、そのネットワークと呼ばかなり高くなっています。で渡すことができます(リモートオブジェクトがすことに留意してください性能に影響を与えるおそれの

本体を万が一紛失してしまっごす時に参照するリモート。する必要がありまを返しますリストではなく待ってからの経過時間のリモート。

として既に述べたように、オブジェクトのパラメータは、RMIの方法では、オブジェクトですぐ直列化され、その直列化復元の内部に目標を含むオブジェクトのRMI方法です。この参照から、元のオブジェクトで渡され、現在二つの別個のオブジェクト一つは、クライアントコードは、以下のメソッドを呼び出し、一つのリモート側となります。

この例では、よりよいアプローチがするアップメソッドの呼び出しかられても一つの方法:くはお客様のお名前、お客様の数字)でご返される結果を呼び出し側け継いでいるのではなくコレクションのように---この:

public ArrayList<String> getCustomerNames() throws java.rmi.RemoteException;

public ArrayList<String> getCustomerNumbers() throws java.rmi.RemoteException;

両ArrayListと文字列の実行の直列化可能の成果コレクションは直列化された送の配線にクライアントコードは、以下のメソッドを呼び出し時点までのデータがあります。もし代わりに利用する必要がありカスタムオブジェクトコレクションにてクラスを実装するjava.io.直列化可能でないインタフェースの仕様がインターフェース、または特に問題ございません。

このような二つの別々の通話のワイヤがはるかにクリーンでより簡単な相互作用を回避の参照を破壊問題のオリジナルの例です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top