我在部署RMI的时候~
start rmiregistry
java -Djava.rmi.server.codebase=http://localhost:8080/server/ ProductServer
这两部都成功了
但是在启动客户端程序
java -Djava.security.policy=client.policy ProductClient
的时候却报错了~好像是连接不上服务器~我想了好久都找不出原因啊
希望您能给我帮助
PS:我电脑上的服务器是tomcat,服务器端文件放在tomcat根目录的server目录下
client.policy, ProductClient两个文件在同一个目录下
client.policy的内容是
grant {
permission java.security.AllPermission;
};
再贴上ProductClient的代码
import java.rmi.*;
import java.rmi.server.*;
import javax.naming.*;
import java.util.Scanner;
public class ProductClient
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.setProperty("java.security.policy", "client.policy");
System.setSecurityManager(new RMISecurityManager());
//System.setProperty("java.rmi.server.codebase", "http://localhost:8080/server/");
String url="rmi://localhost/";
Scanner yn=new Scanner(System.in);
String choice;
try
{
Context namingContext=new InitialContext();
Product c1=(Product)namingContext.lookup(url+"toaster");
Product c2=(Product)namingContext.lookup(url+"microwave");
System.out.println(c1.getDescription());
System.out.println(c2.getDescription());
choice=yn.nextLine();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
------解决方案--------------------------------------------------------
client.policy ProductClient
是那个包里的?放到class path里面了吗?