一些常见的codebase错误上面我们所讲的时codebase是怎么一回事,它是如何工作的。现在,我想讲几个Jini和RMI开发者应该注意的几个问题。1、在codebase中指定多个url:在一个单独的codebase中分隔多个url正确的方法是用空格。例如
         -Djava.rmi.server.codebase="http://url:8080
http://url:8080/myclasses.jar"2、不要使用带file的url:如果你有一个可用的webserver,或者你不想以后运行时出现麻烦,建议你不要使用file:URL的形式作为一个codebase。我曾经看过一个讲codebase的例子,还使用file:形式,真的是有些误导读者。用file这种形式不是个好主意。因为如果服务器给客户传递一个file codebase,那么客户只会试图从本地文件系统装载类代码。如果你在同一台机器上开发和调试服务和客户程序,那么这是可以工作的。但是如果你在不同的机器上运行程序,就会出现问题。
原文见:http://oldsite.linuxaid.com.cn/developer/showdev.jsp?i=257

解决方案 »

  1.   

    原来这一句有错:
    java -Djava.rmi.server.codebase=file:///c:/java/rmi/server/ -Djava.security.policy=file:///c:/java/rmi/policy c15.rmi.PerfectTime把policy改成policy.txt看你都快没信誉分了,肯定都没给分。
      

  2.   

    我没有拷下来试
    但是好象有几个问题:
    Naming.bind("//localhost:2005/PerfectTime",pt);改为:
    Naming.rebind("rmi//localhost:2005/Perfect",pt);
    通常我们rebind而不是bind,这样即使"rmi//localhost:2005/Perfect"上有东西也会被覆盖;
    还有,"rmi“是不能丢的东西,你怎么会忘了呢?
    所以PerfectTimeI t=(PerfectTimeI)Naming.lookup("//localhost:2005/PerfectTime");
    也改为:PerfectTimeI t=(PerfectTimeI)Naming.lookup("rmi//localhost:2005/PerfectTime");
    再去试试看!
      

  3.   

    bibiye(布什的老哥) 讲的对,策略文件没写对造成AccessControlException"rmi"写不写没有关系,缺省就是采用RMI这种协议的
      

  4.   

    I have solved the problem.
    I didn't know I should admin the s before, and I admin all the questions i raised still existing now.
    thank you all the same