0

ローカルで動作する Java RMI アプリケーション (サーバーとクライアント) があります。これらのアプリケーションを作成および実行するために、Eclipse とプラグイン (Genady) を使用しました。

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

Eclipse(+plugin) を使用したローカル展開は、完全に機能します。クライアントは、(「ビルド パス」に追加された) 共通インターフェイスを使用して、サーバー (Eclipse のビルド パスにも共通インターフェイスが追加されています) と通信します。

そして今、同じシステムを 2 台の異なるコンピューターでテストすることを計画しています。どちらもインターネットに接続しています。私は今何をしますか?Apache を 1 台のコンピューター (サーバー) にインストールし、サーバー + インターフェイス ファイル (クラス ファイル) を Web アクセス可能なディレクトリに配置する必要がありますか? & 次に、別のコンピューター (クライアント) からクライアント ファイル (クライアントとインターフェイス クラス ファイルの両方を含む) を実行しますか??

誰かがこれを設定するのを手伝ってくれますか? つまり、リモート展開を機能させるために何をすべきかについての段階的なガイドですか?

Apache(または任意の Web サーバー アプリケーション) の使用は必須ですか?? アプリケーションが Web サーバーを使用せずに動作する他の代替手段はありますか (つまり、直接接続などですか?)。

(必要な情報はすべて提供したと思います。ただし、さらに情報が必要な場合は、お問い合わせください。)

これは私の最終年度のプロジェクトであり、私の最終的なデモが間もなく公開されます! 前もって感謝します!

4

1 に答える 1

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なども必要ありません。攻撃的なウイルス対策ソフトウェアやファイアウォールなどに注意してください。あなたがそれの要点を理解した後、それらは唯一の本当の問題です。

于 2012-06-22T05:25:27.150 に答える