問題タブ [rmiregistry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - SimpleDB セットアップ java.rmi.NotBoundException:simpledb
SimpleDB を自分のコンピューターにインストールしたいのですが、既に CLASSPATH 環境変数を次のように定義しています。
ユーザー変数とシステム変数 CLASSPATH で
コマンドプロンプトを開き、SimpleDB に入ります。次に、start rmiregistry と入力します。別のウィンドウが開きます。その後、java simpledb.server.Startup studentdb と入力します。出力は次のとおりです。
その後、SimpleDB\studentClient\simpledb に移動し、Java CreateStudentDB と入力しました。次のエラーが表示されました。
rmiregistry ウィンドウは既に開いています。閉じていません。なぜこのようなエラーが表示されるのですか? アイデアをください。ありがとうございました。
java - Java RMI がバインドなしでリモート オブジェクトへの参照を返す
RMI を介して通信するサーバーとクライアントがあります。彼らの目標は、単純なオブジェクトを共有し、一緒に作業してから、サーバーの切断をシミュレートすることです。
サーバーの名前は rmiregistry にバインドされています。クライアントは rmiregistry を使用して、サーバーへのリモート参照を取得します。次に、この参照を使用して、共有するオブジェクトへの参照を返すメソッドを呼び出します。以降の通信は、この共有オブジェクトを介して行われます。
共有オブジェクトは UnicastRemoteObject であり、サーバーはその実装を所有し、クライアントへの参照を返すメソッドを持っています。
クライアントは共有オブジェクトのインターフェースを認識し、サーバーからリモート参照を取得して、それに対して動作します。サーバーはシリアル化されたコピーではなく、リモート参照を返す必要があることに注意してください。
これは共有オブジェクト インターフェイスです。
そして、これはその実装です
これは、クライアントが呼び出したときにリモート参照を返すサーバーのメソッドです。
クライアントから呼び出すと、この例外が発生します
java.rmi.UnmarshalException: アンマーシャリングでエラーが返されました。ネストされた例外は次のとおりです: java.io.WriteAbortedException: 書き込みが中止されました。java.io.NotSerializableException: サンドボックス.CImpl
このように記述すれば、メソッドを機能させてリモート参照を返すことができます
私が得られないのは、名前を明示的にバインドしていなくても、リモート参照を返すためだけに、レジストリを再度調べる必要がある理由です。クライアントは以前に rmiregistry を使用してサーバーへの参照を取得したため、ブートストラップは完了しています。では、rmiregistry (1099) のポートを知らずに、サーバーがクライアントへの参照を返すことができないのはなぜでしょうか?
おまけの質問ですが、サーバーがクライアントと共有しているオブジェクトを使用不可にしたい場合 (切断をシミュレートするため)、これよりも良い方法はありますか?
編集:共有オブジェクトの実装で UnicastRemoteObject を拡張すると、メソッドの最初のバージョンは機能しますが、アンエクスポートは機能せず、この例外が返されます
java.rmi.ServerException: サーバースレッドで RemoteException が発生しました。ネストされた例外は次のとおりです: java.rmi.NoSuchObjectException: オブジェクトはエクスポートされません
EDIT2: もう一度確認してください。動作します。参照を返す前に保存する必要があります。
java - Eclipse でマルチプレイヤー ゲームを作成しようとすると RMI エラーが発生する
RMI で作成しているマルチプレイヤー ゲームで問題が発生しています。
RMI を使用する必要があります。これはプロジェクトの要件の 1 つです。
コンパイル時に発生するエラーは次のとおりです。すでに rmiregistry がバックグラウンドで実行されています。
実行しようとしているサーバーは次のとおりです。
これが PlayerTwoControl クラスです。現在はほとんど空です。これを実行してコンパイルするために今必要なのは、p2 の基本的なコントロールをテストできるようにするためです。
とりあえず動きは何も起きていません。関連する場合は、ゲームに JavaFX を使用しています。
助けてください !
アーメド
java - 複数のパラメータを rmiregistry に渡す方法
ProcessBuilder を使用してコードから rmiregistry を実行します。rmiregistry プロセスに複数の引数を渡すにはどうすればよいですか?
今まで私は使用してい-J_xmx1024m
ました。追加のパラメーター (-D) を渡す必要があることはわかっています。
私はこのようなことをする必要があります:
またはこのように:
java - - RMI コード ベースが機能しない - レジストリ ルックアップが非常に遅く、機能しない
コードベースの使い方がわかりません。
私は次の構造を持っています:
HelloInterfaces.java
Hello.java
サーバー.java
クライアント.java
client.policy
サーバー (Linux の仮想マシン) で Netbeans から直接実行: 出力サーバー: 準備完了!
クライアントで、オプションを使用してソースをコンパイルしました--classpath .:Server.jar
(Server.jar には HelloInterfaces.class が含まれています)。
クライアントを実行します。
そして2分後:
また、 を含むディレクトリ サーバーで.class
、ポート 8080 で python httpserver を実行します。 (Java で記述された NanoHTTP、http サーバーと同じ結果)
python httpserver の出力が次のようになるため、アプリ クライアントは http サーバーに接続します。
java - Rmiregistry と LDAP
最近、Java RMI APIRmiregistry
を発見し、リモート オブジェクトの保存と取得に使用しています。
次に、 LDAPを使用してこのタスクを実行できることがわかりました。私はこのアプローチに興味をそそられましたが、いくつかの調査の後、これら2つのオプションの間で少し混乱しました.
今のところ、私が理解していることは次のとおりです。
- どちらもリモートオブジェクトの保存と収集に使用できます
- LDAPはJNDI APIによってアクセスされますが、Rmiregistry は直接利用できます。
私が知りたいのは、各オプションの長所と短所、そして主に、いつ(そしてなぜ)一方を他方の代わりに使用することが推奨されるかです.
java - 多くのマシンでの Java RMI レジストリ オブジェクトの管理
システムに node1、node2、node3 の 3 つのノードがあり、3 つのノードすべてにリモート オブジェクトがあるとします。私の質問はこれです:
node1 で 1 つのレジストリ インスタンスを実行して、3 つのノードにまたがるすべてのオブジェクトを管理することはできますか? それとも、各ノードに独自のレジストリ インスタンスが必要ですか? つまり、1 つのレジストリでオブジェクトを管理できるのは、それ自体のマシンだけですか、それとも他のマシンでも同じですか?