2012-05-05 11 views
0

私はローカルに動作するJAVA RMIアプリケーション(サーバ&クライアント)を持っています。 私は、&プラグイン(Genady)を使って、これらのアプリケーションを実行するのに&を書きました。Java RMI - リモート展開

は私のプロジェクトでは三つの部分があります 1.サーバー 2.インタフェース(両方のクライアント&サーバー用共通)

ローカル展開 3.クライアント、Eclipseの(+プラグイン)を使用して、完璧に動作します。クライアントは、共通インターフェース(「ビルド・パス」に追加)を使用してサーバーと通信します(Eclipseのビルド・パスに共通インターフェースが追加されています)。

今、私は両方のインターネット接続を持つ2つの異なるコンピュータで同じシステムをテストする予定です。 今何をしますか? 1台のコンピュータ(サーバー)にApacheをインストールする必要がありますか?&サーバー+インターフェイスファイル(クラスファイル)をWebアクセス可能なディレクトリに配置しますか? &他のコンピュータ(クライアント)からクライアントファイル(両方のクライアント&インターフェイスクラスファイルを持つ)を実行しますか?

これを設定する手助けができますか?リモート展開が機能するために何をすべきかについての段階的なガイドです。

Apache(または任意のWebサーバーアプリケーション)を強制的に使用していますか?私のアプリケーションがWebサーバーを使用せずに動作するための他の代替手段(私は、直接接続または何かのような意味ですか?)

(私は私が必要とするすべての情報を与えてくれた気がします。しかし、それ以上の情報が必要な場合は、お問い合わせください。)

これが私の最後のデモはすぐに来ている&私の最終年度のプロジェクトです! ありがとうございました!

+0

コードベース機能を使用している場合を除き、Apacheサーバーは必要ありません。残りの質問はあまりにも漠然としています。サーバークラスをサーバーに展開する必要があります。クライアントクラスをクライアントに送信する。両方にクラスを共有します。 – EJP

答えて

0

私はめったにEclipseを使用していないのでGenadyが何をしているのか分かりません。とにかくRMIアプリケーションの開発は非常に簡単です。

リモートマシン(RMIのR)(サーバーホスト)で実行すると、デフォルトでポート1099を使用するレジストリに自身を登録する必要がありますが、任意のポート以下のような:

MyRemoteInterface stub = (MyRemoteInterface) UnicastRemoteObject.exportObject(server, 0); //I don't know if this is needed anymore, or you could make the "server" extend UnicastRemoteObject 
int thePortUsedInTheServer = 1099; //default 
Registry registry = Registry.createRegistry(thePortUsedInTheServer); 
registry.rebind("Server", stub)); 

パッククライアントコードとクライアント(複数)上で実行します(RMIにおけるM + I)、それがリモートマシン(ホスト+ポート)でレジストリを見つけなければならない:

String host = ...; //the host where the server is 
int port = ...; //the port used in the server 
Registry registry = LocateRegistry.getRegistry(host, port); 
MyRemoteInterface stub = (MyRemoteInterface)registry.lookup("Server"); 
stub.myRemoteMethod(); //call your remote methods 

javadocが助けてくれるはずです。他には何も必要なく、Apacheはありません。攻撃的なアンチウイルスソフトウェア、ファイアウォールなどに注意してください。あなたがそれの要点を得た後でそれらは唯一の真の問題です。

関連する問題