不知道有人看过<<java网络高级编程>>这本书,在这本书的第二章有一个java RMI的例子,我把它抄下来了,也按步骤弄好了,但客户端在运行的时候,抛出了一个AccessControlException显示访问被拒绝,不知道怎么回事?
在客户端运行的时候,rmiregistry与服务器都已经被启动了呀。。
在客户端运行的时候,rmiregistry与服务器都已经被启动了呀。。
解决方案 »
- system.in
- 初学者 请求帮助
- 有关java认证的一些问题
- 急急............大侠帮帮忙啊
- MySql中文问题
- 跪求高手教我如何用jtable读数据库的多行信息
- 高手帮帮忙!
- 怎样实现JFormattedTextField只能输入小数?在线等待中.....!谢谢
- 关于jar xf *.jarFile 命令在ant中的实现!各位谁见过或者用过?分肯定给!即使解决不了!谢谢了!
- 如何在applet做成的对话框中加上一个超级连接
- Java中的一道求斜率,平行题!求解决
- Exception in thread "main" java.lang.NullPointerException大神们这是什么问题
客户端启动也要用参数:
-Djava.security.policy=你的policy文件要么就像书上那样用appletviewer来启动客户端。
//Upper.java
import java.rmi.*;public interface Upper extends Remote
{
String upperCase(String s)throws RemoteException;
}
//UpperImpl.java
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;public class UpperImpl extends UnicastRemoteObject implements Upper
{
public UpperImpl()throws RemoteException
{
super();
}
public String upperCase(String s)throws RemoteException
{
return s.toUpperCase();
}
public static void main(String[]args)
{
System.setSecurityManager(new RMISecurityManager());
try
{
UpperImpl obj=new UpperImpl();
Naming.rebind("UpperString",obj);
System.out.println("UpperString bound in registry");
}
catch(Exception e)
{
System.out.println("UpperImpl err:"+e.getMessage());
e.printStackTrace();
}
}
}
//UpperClient.java
import java.rmi.*;
public class UpperClient
{
public static void main(String[]args)
{
System.setSecurityManager(new RMISecurityManager());
Upper obj=null;
try
{
obj=(Upper)Naming.lookup("UpperString");
String results=obj.upperCase("abc");
System.out.println("Result:"+results);
}
catch(Exception e)
{
System.out.println("RMI Exception:"+e.getMessage());
e.printStackTrace();
}
}
}
//RMIpolicy.policy
grant
{
permission java.security.AllPermission;
};
大家看看这些代码哪儿有问题,还是其他的问题
我的计算机上的运行结果是
这个是客户端运行的结果:
进行读取时出现 I/O 异常: E:\UpperClient (系统找不到指定的文件。)不知道为什么
运行方式的问题。找不到的文件是policy文件吧?