RMIサーバ/クライアントを実験しているのですが、JDK5.0にて
http://72.5.124.55/j2se/1.5.0/ja/docs/ja/guide/r …
や
http://d.hatena.ne.jp/nowokay/20060112
にあるように、
(1)リモートオブジェクトを new
(2)UnicastRemoteObject.exportObject()
(3)LocateRegistry.createRegistry()
(4)(3)で起動した rmiregistry に bind
しようとしたのですが、(3)(4)にたどり着くまでもなく、
(2)で必ず例外(ExportException: object already exported)が出てしまいます。
具体的には以下のようなコードが私の環境では例外になってしまいます。
(便宜上内部クラスとして記述し直しています。また空白を全角にしています)
===================================================================
package test;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
public class Server {
public static void main(String[] args) throws Exception {
Server server = new Server();
server.init();
}
public void init() throws Exception {
Foo rmiObj = new FooImpl();
Foo stub = (Foo) UnicastRemoteObject.exportObject(rmiObj, 41199); //★ここで例外
LocateRegistry.createRegistry(1099);
Registry registry = LocateRegistry.getRegistry(1099);
registry.rebind("fooService", stub);
}
/* リモートインターフェース */
public interface Foo extends Remote {
public void hello() throws RemoteException;
}
public class FooImpl extends UnicastRemoteObject implements Foo {
public FooImpl() throws RemoteException {}
public void hello() throws RemoteException {
System.out.println("Hello World.");
}
}
}
===============================================================
★例外
Exception in thread "main" java.rmi.server.ExportException: object already exported
at sun.rmi.transport.ObjectTable.putTarget(ObjectTable.java:172)
at sun.rmi.transport.Transport.exportObject(Transport.java:75)
at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:196)
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:382)
at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:116)
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:180)
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:293)
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:235)
at test.Server.init(Server.java:18)
at test.Server.main(Server.java:13)
===============================================================
init の2行目、つまり実質 new して exportObject しようと
するだけで例外になってしまうので、原因がよく分かりません。
他プロセスに起動したものが残っていたりしないか確認しましたが、
特に見受けられませんでした。
実はそのまさに2行目を抜いた状態で RMI サーバを起動しておき、
リモートオブジェクトを取ると…うまく取れてしまいました。
(ただし RMI サーバ/クライアントはともに同じローカル)
が、上で挙げた情報先にあるような書き方でできないのがどうにも
気持ち悪いのです。
どこが悪いのでしょうか…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- Java java final 1 2022/06/10 22:49
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java と javax の違いは?
-
Javaでのエラーについて
-
DBから全権検索したデータをjsp...
-
-Applet表示でのjava.lang.Clas...
-
$_SERVER['HTTP_USER_AGENT'] ...
-
AntでのJunitの試験
-
jdk-1_5_0_07でのコンパイルエラー
-
DBにかな情報が登録できません...
-
CLASSPATHを設定しても、『Clas...
-
JavaMail関係でエラーが出ます
-
android-studioがインストール...
-
Javaでマウスカーソルを操作
-
テーブル名が日本語だとクエリ...
-
JSPファイルで生じるエラーをど...
-
VBAの「for i=1 to cells(…」...
-
vba クリップボードクリアにつ...
-
gitでバージョン指定してダウン...
-
正規表現について質問です。 カ...
-
エクリプスのプログラミングに...
-
IISワーカープロセスが原因でCP...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaでのエラーについて
-
java と javax の違いは?
-
javaからデータベースに接続 エ...
-
CLASSPATHを設定しても、『Clas...
-
javacのコンパイルでファイルが...
-
JasperExceptionのエラーログの...
-
マイクラ Ender IO 入れたらク...
-
System.inをClose()すると例外...
-
JAVA実行時エラーについて教え...
-
javaサーブレット upload時
-
Eclipseにdllがうまく読み込めない
-
JSFで、マネージビーンに画面の...
-
javaのGUIツールキット
-
propertiesが読み込めなくてnul...
-
DBから全権検索したデータをjsp...
-
テーブル名が日本語だとクエリ...
-
android-studioがインストール...
-
struts2環境構築で不具合が出て...
-
log4jを使用し、JAVAのバッチプ...
-
Tomcatのweb.xmlの設定について
おすすめ情報