問題タブ [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 - rmiレジストリバインディングの問題
IP:192.168.133.2の仮想マシン(Windows XPを実行)でRMI Regitryを実行しており、次のコードを使用してRMIサーバー(異なるvm XP IP:192.168.133.3で実行)をバインドしようとしています:
どこ
しかし、私はこの例外を受け取ります:
RMIレジストリは、同じRMIレジストリ実行マシンで実行されていないrmiサーバーを受け入れないことがわかりました。
しかし、このレジストリに私のrmiサーバーを受け入れさせるにはどうすればよいですか?
ps:JBuilderXをIDEとして使用しています。
私は、いくつかのrmiサーバーで実行され、それらでいくつかの作業を行い、結果を開始ステーションに返すモバイルエージェントを実装しようとしています。これにより、RMIサーバーは、このエージェントをホストする環境を実装して、その作業を実行し、次のサーバーに送信します。レジストリを介して検索するステーション
sockets - 同じポートに 2 つの RMIRegistry.exe がありますか?
私は Windows 7 (Professional、64 ビット) システムで作業していますが、現在の状況を見てきました。Java 6 (JRE のみ) と Java 7 (JDK) の両方を 64 ビットでインストールしました。
コマンドプロンプトから、ディレクトリから実行します
rmiregistry.exe
(デフォルトポート1099) 。jre6/bin
それが実行されている間に、別のコマンドプロンプトからもう一度実行しようとします。ポートが既にバインドされているという例外が返されます。rmiregistry.exe
fromjdk7/bin
ディレクトリと同じです。同じ例外、既にバインドされています。コマンドプロンプトから、ディレクトリから実行します
rmiregistry.exe
(デフォルトポート1099) 。jre6/bin
それが実行されている間、別のコマンドプロンプトから、ディレクトリrmiregistry.exe
から(デフォルトポート1099)を実行しようとします。jdk7/bin
走る!調べてnetstat -a -b -o
結果を見ると、両方の PID が IPv4 と IPv6 のポート 1009 をリッスンしています。最初に実行されるものは、RMI 操作と API に応答します。
それはどのように可能ですか?2 つの RMIRegistry がポート 1099 でリッスンするにはどうすればよいですか? 何か不足していますか?
助けてくれてありがとう。
これに関する詳細:
- Java 6 RMI レジストリを実行すると、例外スタック トレースは;
Caused by: java.net.BindException: Address already in use: JVM_Bind
からに戻ります。java.net.PlainSocketImpl.socketBind(Native Method)
- Java 7 RMI レジストリを実行すると、代わりに例外スタックトレースが
java.net.DualStackPlainSocketImpl.bind0(Native Method)
.
意味はありますか?これは-Djava.net.preferIPv4Stack=true
VM オプションと関係がありますか? Java 7 から、IPv4 と IPv6 の両方の RMI ポートが Java 6 または Java 7 RMI レジストリのいずれかによって占有されているかどうかを知るにはどうすればよいですか?
またまた詳しく…
私はすべてを止めました。単なる「楽しみ」として、Calibre (電子書籍管理アプリケーション) の内部 Web サーバーをポート 1099 で実行しました。
rmiregistry.exe
Java 6から、ポートがビジーであるため実行できないと表示されます。rmiregistry.exe
Java 7 から実行されます... しかし、以前と同様に、ポート 1099 の応答は Calibre から来ています。
もう1つ:Ubuntu(OpenJDKを使用)で同じRMIレジストリ(Java 6 + Java 7、32ビット)を実行すると、(Java 7の場合でも)「Port already in use」メッセージが表示されますjava.net.PlainSocketImpl.socketBind(Native Method)
。同じポートを 2 つ占有することはできません... いつものように! 少なくとも、Windows 7 + Java の問題であることはわかっています。
他にヒントはありますか?
DatagramSocket を使用して似たようなものを見ました: Java 6 のポートで使用しています。次に、Java 7 で別の同じアプリケーションを実行し、既に使用されている場合でも、そのポートに接続します (ただし、機能しません)。次に、Java 7 を使用して 3 番目の同一のアプリケーションを起動すると、このアプリケーションはそのようなポートがすでにビジーであることに気づきます。これは RMI レジストリでも同じだと思います。
同じポートで 2 つの RMI レジストリを実行できるのはなぜですか? Java 6 と Java 7 が、ソケットとポートに関して、ある意味で「競合する」動作をするのはなぜですか? また、Windows (私の状況では 7) が同じポートで 2 番目の要求をブロックしないのはなぜですか?
java - rmiregistryおよびUbuntu10.04を起動すると、ターミナルが閉じます。
「rmiregistry&」と入力してUbuntu 10.04に入ると、ターミナルが閉じます。エラーは発生しませんでした。rmiregistry&+Enterを押した瞬間にターミナルが閉じます。助けてください
java - RMI - LAN ではなく、同じマシンで作業する
1 つのサーバーと 2 つのクライアントの間で 2 つの通信を確立しようとしています。これは、すべてのプログラムが同じマシンで実行されている場合は非常にうまく機能しますが、LAN ネットワークを使用しようとすると機能しません。エラーが発生しました:
サーバーコードは次のとおりです。
クライアント コードのコンストラクタは次のとおりです。
registerClient(String name) コードはおおよそです (Game クラス内):
すべてのファイアウォールが無効になっています。
私はこの問題に何時間も取り組んできましたが、何が問題なのかまだわかりません。少しでもお役に立てれば本当に幸いです。ありがとうございました
java - RMI レジストリが java.rmi.server.codebase プロパティを無視する理由
Java RMI の Hello World の例を実行しています
1)空のフォルダーでレジストリを実行します
2) HTTP サーバーを起動して、実行時にクラスを取得します。ダウンロードフォルダーには、クライアントサーバー用のリモートインターフェースが含まれています
3) Java RMI チュートリアルで提案されているように、java.rmi.server.codebase プロパティを渡してサーバーを起動します。
RMI レジストリが HTTP サーバーに接続しておらず、例外をスローしています (質問の後の詳細を参照してください)。 しかし、私が次のことをすると
1) java.rmi.server.codebase プロパティを使用して rmi レジストリを開始します。
2) 前と同じように HTTP サーバーを起動します。
3) オプションなしでサーバーを起動する
それは機能しますが、なぜですか?最初の手順では、RMI レジストリが java.rmi.server.codebase プロパティを無視しているようです。
ありがとうございました
=================================
私は走っています
RMI レジストリからの例外
java - RMI アプリケーションを実行していますが、セキュリティ マネージャはありません: RMI クラス ローダー無効化例外が発生します
これは例外全体です。
私のクライアント パッケージには、 と も
含む 2 つのクラスComputeappproj
が含まれています。main
prog
私はすでに1000のフォーラムを検索しました。何も助けませんでした。
ポジティブなことを期待して
そして、良いです
多分...
java - RMI 理論、スタブ ファイルのダウンロード
Client が RMIregistry へのリモート参照を要求すると、Rmiregistry は Client にスタブ クラスのインスタンスを送信します。クライアントはこのクラス (.class) の定義も必要とします。
クライアントが Rmiregistry に stub.class を要求するか、Rmiregistry が自動的に送信しますか?
コードベース プロパティを使用して、クライアントに Web サーバーから stub.class をダウンロードさせることはできますか?
ありがとう
**編集: rmic を使用してスタブ ファイルを生成すると、クライアントはそれらをダウンロードしようとします。rmic を使用しない場合、クライアントはスタブをダウンロードしませんが、私のプログラムは動作します。
これを説明できますか?
**最終編集: わかりました。理解できたと思います。EJPのおかげで
よろしく
macos - RMI でのネットワーク構成の変更後に保存されたエンドポイント IP アドレス
Mac で RMI サーバーを実行しています。サーバーIPを変更してアプリケーションとクライアントを再起動すると、クライアントは正しいバインドとルックアップアドレスで古いIPアドレスに接続し続けます。プログラムが別のLinuxサーバーでポートが異なるだけで動作しているため、何が問題なのか本当にわかりません。
リモートオブジェクトクライアントが取得したものはProxy[MinervaInterface,RemoteObjectInvocationHandler[UnicastRef [liveRef: [endpoint:[192.168.0.104:51815](remote),objID:[40d99efb:140ba232cec:-7fff, 6333954213550330995]]]]]
192.168.0.104 は古い IP であり、10.0.1.104 である必要があります
ホストファイルとコードを確認しましたが、次のようなものはありません192.168.0.*
助けてください、ありがとう。
アップデート
これはサーバー レジストリの問題であることを確認しました。しかし、私はすでにサーバーを再起動しています。レジストリに対して他に何をしたか覚えていません。手動で設定する方法はありますか?
アップデート
そのサーバーでこのコードを実行すると、このアドレスがどこから来たかを説明できる がInetAddress.getLocalHost().getHostAddress()
返されました。192.168.0.104
しかし、現在サーバーにはそのようなアドレスはありません
解決した
Javaがホスト名を使用してlocalhostアドレスを検索していることがわかりましたが、そのホスト名は何らかの理由でlocalhost
更新されておらず、更新されていません。OS X Server
OS X Server コンソールからレコードを更新し、この厄介な問題を解決しました。
それについて考えたことはありません
java - クライアント/サーバー/両方の Java RMI Eclipse ClassNotFound および .lookup(不明なソース)
問題は非常に人気があるようです-> Eclipse IDEを使用してRMIサーバーを実行しているときにClassNotFoundException ...確かに、http://www.genady.netからRMI Eclipseプラグインでコードベースパラメーターを設定するあらゆる可能な方法を深く掘り下げました何も機能しませんでしたそのコードをSERVERのメインで:
または、1099 で RMIRegistry が事前に開始されている場合:
Server Impl Stub に関しては ClassNotFound ... 何時間も髪を抜いた後、try ブロックにレジストリを作成し、それを使用してサーバーを登録することにしました。
出来た!!!素晴らしいですが、クライアントの実行よりもこれが生成されました:
そして、私は何をすべきか少しもわかりません.RMIRegistryはどういうわけか台無しになっていますか? コードのせいですか?
できれば助けてください。
ここにコード、print-server、print-client、print-common ( with shared Interface ) があります:
/////////////////////////////////////////////// ////
/////////////////////////////////////////////// ////
私はいくつかの良いアドバイスを頼りにしています!
前もって感謝します、