JavaのRMI - ソケットのアクセス許可の問題
-
22-09-2019 - |
質問
私は2つの異なるソケットに私のJavaプログラムを接続しようとする問題を抱えています。基本的に私は私のRMIサーバー(ポート1099に接続している)と、初期化したい、ポート10002初期化は、両方の作業罰金に見えますが、できるだけ早く私は、私は次のエラーを取得するprologBeansにアクセスしようとしてもオン初期化PrologBeans:
Exception in thread "main" java.security.AccessControlException: access denied
(java.net.SocketPermission 127.0.0.1:10002 connect,resolve)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:475)
at java.net.Socket.<init>(Socket.java:372)
at java.net.Socket.<init>(Socket.java:186)
at se.sics.prologbeans.PrologSession.connectToServer(PrologSession.java:511)
at se.sics.prologbeans.PrologSession.initSend(PrologSession.java:442)
at se.sics.prologbeans.PrologSession.send(PrologSession.java:368)
at se.sics.prologbeans.PrologSession.executeQuery(PrologSession.java:331)
at api.ActionRetriever.logEvent(ActionRetriever.java:68)
at contract.ContractManager.log_event(ContractManager.java:87)
at gui.RMITrial.main(RMITrial.java:39)
:に設定されている私はまた、ポリシーファイルを持っている(私のRMIコードがパッケージにはポリシーファイルを配置するには、このとしても、正しい場所であるか、それがデフォルトのパッケージにする必要があります。?)、
grant {
permission java.security.AllPermission;};
誰もが私がのSocketPermissionエラーを取得していますなぜ上の任意のアイデアを持っている場合、私は不思議でしたか?私の許可設定が間違っていますか?
すべてのヘルプははるかに高く評価されるだろう。
ありがとう。
解決
あなたはVM引数に-Djava.security.policy =パス/に/ポリシー/ファイルをインクルードする必要があります... その後、自分のポリシーファイルが読まれるべきであると、すべてがうまくしなければならない:)
所属していません StackOverflow