私はJavaのRMIトピックに不慣れで、RMIを使用してクライアントサーバーアプリケーションを作成したいと思っています。
私はこのリンクにあるこのチュートリアルに従いました:Eclipseを使用したRMIチュートリアル
しかし、私はnetbeansを使用しています、そしてここにサーバーコードがあります:
import java.rmi.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.*;
public class AdditionServer {
public static void main (String[] argv) {
try {
if (System.getSecurityManager() == null)
{
System.setSecurityManager(new SecurityManager());
}
String policy="file:/home/user/NetBeansProjects/RMIServerSide/security.policy";
System.setProperty("java.security.policy",policy);
Addition Hello = new Addition();
System.out.println("test\n");
Registry reg=LocateRegistry.createRegistry(1099);
reg.rebind("rmi://localhost/ABC", Hello);
System.out.println("Addition Server is ready.");
}catch (Exception e) {
System.out.println("Addition Server failed: " + e);
}
}
}
そしてここにsecurity.policy:
grant codeBase "/home/user/NetBeansProjects/RMIServerSide/build/classes/" {
permission java.security.AllPermission;
};
次に、ターミナルでrmiregistry&を実行します。それから私はサーバーを実行します、そしてここで出力は正確に何ですか:
Addition Server failed: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.security.policy" "write")
vmの設定や何かのように、私がそれを見逃しているものはありますか?
私も同じ問題を抱えていました。私はこれらの手順に従ってそれを修正しました:
security.policy
以下の内容で
grant {
// Allow everything for now
permission java.security.AllPermission;
};
2-リモートオブジェクトをにバインドする直前に、次のコード行を追加しますrmiregistry
。
System.setProperty("java.security.policy","file:./security.policy");
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加