問題タブ [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.

0 投票する
4 に答える
19443 参照

java - rmir​​egistry が使用するクラスパスを設定するにはどうすればよいですか?

Java RMI クライアント/サーバー アプリを作成しようとしています。アプリのサーバー側を起動しようとすると、Registry.bind() メソッドの呼び出し中にClassNotFoundExceptionが発生し続けるため、アプリのサーバー側を起動するときに問題が発生します。

ここの簡単なチュートリアルから始めました: http://docs.oracle.com/javase/1.5.0/docs/guide/rmi/hello/hello-world.html。これらの指示に従った後、最初は「example.hello.Hello」が見つからないことを訴える ClassNotFoundException をスローしていました。rmir​​egistryはどうやらクラスパスの一部として最初の開始ディレクトリを使用するため、チュートリアルのdestDirディレクトリからrmiregistry を開始することで解決できました。

その後、別のテスト アプリを使い始めましたが、サーバー クラスでサードパーティの jar ファイルを使い始めるまでは問題ありませんでした。現在、rmiregistry アプリはこれらの jar ファイルを認識していないため、私のサーバー クラスが任意の jar ファイル内の何かを参照している場合、Registry.bind() は ClassNotFoundException をスローします。

私が知る限り、rmiregistry はクラスパスの起動引数を一切受け入れないので、認識させたいクラスパスをどのように伝えることができるのか疑問に思っています。http://docs.oracle.com/javase/tutorial/rmi/running.htmlのチュートリアルによると、「rmiregistry を実行するシェルまたはウィンドウにCLASSPATH 環境変数が設定されていないか、リモート オブジェクトのクライアントにダウンロードするクラスへのパスを含まない CLASSPATH 環境変数があります。」それは私が必要としているものとは正反対のように聞こえます... それとも私の読み方が間違っているのでしょうか? サードパーティの jar (私の場合は commons-io、commons-logging、および rmiio) を使用する RMI クライアント/サーバーの起動に成功した人はいますか?

ちなみに、これはWindows上です。


更新 私はそれを回避する方法を見つけました。以下の私の答えを見てください。

0 投票する
1 に答える
990 参照

java - rmir​​egistry を開始しても機能しない

rmir​​egistry の起動で問題が発生しました

コマンド ラインに start rmiregistry と入力すると、エラーが返されます。


java.rmi.RemoteException: エクスポートに失敗しました: クラス gnu.java.rmi.dgc.DGCImpl at 0x00418dde (不明なソース) at 0x004192d2 (不明なソース) at 0x00443aa4 (不明なソース) at 0x0040984d (不明なソース) at 0x0040989a (不明なソース) at 0x00409090 (不明なソース) at 0x00468c70 (不明なソース) 0x00468d37 (不明なソース) 0x0040906c (不明なソース) 0x0040ac05 (不明なソース) 0x00401a80 (不明なソース) 0x0040cb73 (不明なソース) 0x0040cbae (不明なソース) 0x00401733 (4 d00601)未知のソース) 0x00416afe (未知のソース) 0x0041f220 (未知のソース) 0x004033f7 (未知のソース) 0x00401328 (未知のソース) 0x00401247 (未知のソース) 0x00401294 (未知のソース) 0x758fd305 で未知のソース (未知のソース) )0x770e15ff (不明なソース) 0x770e15d2 (不明なソース)


環境変数が正しいjdk/jreを指していることを確認する解決策を見てきましたが、それを行ったのでうまくいくはずです....しかし、うまくいきません。

私が考えることができる唯一の他のことは、私が大学のプロキシにいるということです.

Ta さん、お返事をお待ちしております

0 投票する
2 に答える
875 参照

java - クライアントが RMI レジストリをアンバインドするのを拒否するには?

簡単な RMI アプリケーションを作成します。RMI-Registry を取得した後のクライアントは、Registry.unbind() メソッドを正常に実行できることがわかりました。私の意見では、これはセキュリティ上のリスクです。クライアントがリモート レジストリで名前のバインドを解除できるのはなぜですか? 悪意のある人物がコードを変更してこれを行うことができ、バインディングが削除されたため、他のすべてのクライアントがサーバーに接続できません。

おそらくJavaポリシーで、これを否定する可能性はありますか?

0 投票する
2 に答える
18387 参照

java - Java コードから RMI レジストリを起動する方法は?

クライアントとサーバー用の Java プログラムを作成しました。ただし、プログラムを実行するには、rmi レジストリを手動で開始する必要があります。Javaコードを介して(サーバーを介して)RMIレジストリを開始する方法は?

0 投票する
3 に答える
417 参照

java - 単一の RMI サービスの単純なエントリ ポイントですか?

RMI インターフェイスをエクスポートするサービスがいくつかあります。

以前は、独自のレジストリを作成し ( を使用LocateRegistry.createRegistry)、そこにバインドすることでこれを提供していました。ただし、サービスが同じ VM (Tomcat) で別のアプリケーションとして実行されるように移動された場合、何らかの理由で 1 つのレジストリしか存在できないため、これは不可能になりました。

すべてのサービスに中央レジストリを使用することで、この問題を回避しました。それでも、レジストリのマルチオブジェクト レジストリの役割にはあまり興味がありません。エントリ ポイントの機能だけに興味があります。ただし、中央レジストリはより複雑になります (たとえば、最初に開始する必要があり、登録するサービスのインターフェイスが必要です)。

各サービスが RMI インターフェイスへのエントリ ポイントを個別に提供し、それらを同じ VM で実行するという状況を元に戻す方法はありますか (これはホスティングの詳細であり、設計の一部ではありません)。

0 投票する
2 に答える
1976 参照

java - ProcessBuilder の使用時にクライアントが RMI レジストリとの接続に失敗する

コマンドラインからRMIレジストリを作成している場合、クライアントはオブジェクトをレジストリにバインドすることに問題はありません。

ただし、を使用して RMI レジストリを開始するProcessBuilderと、エラーが発生します。

rmiregistryこれは、使用して作成するための私のコードですProcessBuilder

ProcessBuilder自分の RMI レジストリにバインドしようとしているときに使用するために発生するエラー

node_funcインターフェイスです

何か案は?

0 投票する
1 に答える
425 参照

java - クライアント側からの RMIregistry の呼び出しに関する問題

初めて RMI レジストリを使用してリモート呼び出しを試みています。それを実装するインターフェースとクラスを書きました。それを呼び出そうとしているときに問題に直面しています。Windows マシンで を指定して rmiregistry を開始しました。これによりstart rmiregistry、新しいウィンドウが開きました。

クライアント側のプログラムは次のようになります。

にどの値を指定する必要があるかについて混乱していますhost

私は与えてみました:

(a) http://localhost (b)http://localhost:1099

それは去りjava.net.UnknownHostException: http://localhost:1099ます。

アップデート:

ホストをMy_Sys_IPに変更した後、負けjava.net.UnknownHostExceptionましたが、結局Client exception: java.rmi.NotBoundException: Details

0 投票する
1 に答える
431 参照

java - システム間の接続例外

この質問は何度も聞かれ、私は解決策に従いましたが、うまくいきませんでした。

私は得ています

システムから10.155.1.232 1099ポートにTelnet接続しようとしました。Telnet接続できるということは、ポートに問題がないことを意味します。

8090また、私のTomcatのポートでviceversaをtelnetしようとしました。

私のシステムにはファイアウォールがありません。

rmiレジストリがすでに実行されているかどうかを確認する必要があります10.155.1.232か?

rmir​​egistryがcmdからWindowsシステムで機能しているかどうかを確認するにはどうすればよいですか?

だから何が問題になるのか教えてください

StackTraceは次のとおりです。

0 投票する
1 に答える
607 参照

java - クライアント、サーバー、およびrmiが機能しない

このコードは機能しません。まあ、それは動作しますが、クライアントは印刷しません。私は何か間違ったことをしていますか?W7とNetBeansを使用しています。rmir​​egistryに問題がないかどうかを確認する方法はありますか?これらのキャッチを削除すると、コンパイルできなくなります。問題は再バインドとルックアップに起因すると確信しています。

ServerNew.java:

ClientNew.java:

サーバーの出力(ServerNew.java:38is Naming.rebind):

0 投票する
1 に答える
5393 参照

java - JavaRMI-レジストリが存在するかどうかを確認します

JavaRMIに少し問題があります。

レジストリが存在するかどうかを確認できますか?このコード行は私にレジストリを与えることになっています。

しかし、間違ったIPアドレスまたはレジストリが見つからないIPアドレスで呼び出すと、メソッドがスタックします。

だから私の質問は、getRegistry()を呼び出す前に、特定のIPアドレスにレジストリがあるかどうかをどうにかして確認できますか?