日期:2014-05-20  浏览次数:20710 次

RMI部署,客户端运行出错
我在部署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里面了吗?