技術的雑談-RMIのSecurity設定
環境
JDK1.4.2_08、JKD1.5.0_03
現象
RMIで「java.lang.SecurityException」が出る!
でも、まだDebugだからとりあえず動くかどうか確認したい。
対処
以下の手順を踏む事で一応Exceptionは出なくなります。
1.policyファイルを用意する
全部「許可」だったら以下のように記述する
grant { permission java.security.AllPermission;};
これを「my.policy」みたいな名前をつけてテキストファイルとして保存しておく。
2.javaコマンドオプション
Server/Client両方がApplicationの場合、以下のようなオプション設定を加えます。
java -Djava.rmi.server.codebase=file:///c:/〜(共有されるClassが置かれたディレクトリ)/ -Djava.security.manager (←これを入れておくとSystem.setSecurityManager(new SecurityManager()); を入れないで済む) -Djava.security.policy=file://C:/〜(先程のpolicyファイルの場所) test.AP_ClientLogTest(←実行するServer/Client Application)
上記設定はClient/Server両方に必要なようです。注意しましょう。
また、共有Objectの実装Classに「rmic」コマンドを実行して共有可能なようにしておくのも忘れないようにしましょう。
履歴
2005/7/14 -- 初版
技術的雑談へ戻る