トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

技術的雑談-RMIのURL

技術的雑談-RMIのURL


 環境

JDK1.4.2_08とJDK1.5.0._03

 現象

RMI RegistryでDefaultではないポート(1099)に対してrmiregistryを置いた場合にうまく通信できない。

で、よく見るとjava.rmi.Naming#lookup(String url)に「rmi://localhost:9999/hogehoge」とか指定している。

 対処

java.rmi.Namingのjavadocを見るとわかるのだが、RMIで指定するURL形式では先頭に「rmi:」なんてつけない!!!
(いくつかのSiteでそんなSampleを見かけるが、デマです。)

正式な形式は

[// ホスト [: ポート]/] オブジェクト名]

です。

つまり、

//localhost:9999/hogehoge

と書くのが正しい。
ホストやポートが省略されるとそれぞれ「localhost」「デフォルト(1099)」が指定されたとみなされるらしい。

先程の「rmi://localhost:9999/hogehoge」は、
localhostデフォルトポート(1099)rmi://localhost:9999/hogehogeという名前で公開されているObject」
を指している事になる。
で、rmiregistryは9999に口をあけていたりすると「接続できねぇよ!」とNaming#lookup()で怒られる事になる。

教訓:Javadocは「ちゃんと」読みましょう。

 履歴

2005/7/14 -- 初版

技術的雑談へ戻る

 突っ込み

name   comment  
URL (入力するとす ぱ むとみなします!)


技術的雑談へ戻る

TrackBack

TrackBack URL for this entry:
http://www.himajin2001.com/fswiki/tb.cgi/%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2DRMI%A4%CEURL

技術的雑談へ戻る

最終更新日時:最終更新時間:2005年07月14日 10時28分05秒
トップページに戻る