我试过用接口实现不了,一定要把编译好的class文件拷贝到另外一个机器上面。
注意一定不要在另外的机器编译,即使一模一样的java文件,也不行。

解决方案 »

  1.   

    你这里面可能不只一个问题。
    unmarshalling,说明有传递的对象有属性甚至是这个对象整个就没有实现serializable接口。
    另外你的那个java.policy文件在哪里,你知道吗?
    还有,使用现在常用的jdk版本(java2),是不需要产生skeleton的,只要产生stub就够了。
    还有,你的stub是放在什么目录下,也是有关系的。
    最好把你的代码拿贴出来,既然是例子,贴出来又何妨呢?
      

  2.   

    我的文件都放在一个目录下,譬如(rmiexample),包括java.policy我有了新发现了当我在rmiexample目录(即我放类文件的目录)下执行 rmiregistry 命令后,
    再执行 java -Djava.security.policy=java.policy ProductServer 正常了。
    当我不在rmiexample目录下执行 rmiregistry,在其他目录下执行,
    再执行 java -Djava.security.policy=java.policy ProductServer 就会报上面的错误,
    即使我在命令上加codebase也没有用,如:
    start java -Djava.rmi.server.codebase=file:C:\Docume~1\Administrator\jbproject\rmipro1\classes\. 
    -Djava.security.policy=file:C:\Docume~1\Administrator\jbproject\rmipro1\classes\java.policy ProductServer
    也会报同样的错误所以我得出如下结论,rmiregistry程序在它执行的目录下寻找stub文件。不知道对不对?
      

  3.   

    补充几句,运行命令java -Djava.security.policy=java.policy ProductServer 的stub找不到出错信息,提示的是rmiregistry找不到stub并不是 ProductServer找不到stub。
    所以在运行rmiregistry命令时设置一下classpath就可以了搞定了!!!
      

  4.   

    =) 来晚了 
    的确 
    这种问题,
    只要set CLASSPATH=*** 之后就可以正常rmiregistry了