我在本机上写了个RMI程序,运行成功。现在我想在本机上模拟实际的分布式环境(即:让客户端程序从服务器端指定的java.rmi.server.codebase路径上下载代码存根,而不是通过CLASSPATH来查找代码存根)
我是这样做的(我的服务端程序是rmiServerApp.RmiServer.java , 
          远程对象类为rmiServerApp.RemoteObject.java
             远程接口类为rmiServerApp.RemoteInterface.java
                我以下提供的信息足以让各位帮我解决问题,
                   贴代码只会增加复杂性):1。 启动TOMCAT服务器,我的TOMCAT占据的是80端口2。 编译我写的所有类3。 在命令行下rmic rmiServerApp.RmiServer    这时rmiServerApp目录下会出现代码存根和Skel4.  在TOMCAT的根目录下(即http://127.0.0.1/ 所访问的目录)创建文件夹rmiServerApp,然后将  代码存根剪切到该rmiServerApp目录中,我保证CLASSPATH下没有TOMCAT的根目录路径.5.在e:/下创建名为policy.txt的安全管理器配置文件,内容如下:
            
       grant {

        permission java.security.AllPermission;
          };6.在命令行下输入以下命令以运行RmiServer  java -Djava.security.policy=file:e:/policy.txt 
       -Djava.rmi.server.codebase=http://127.0.0.1/ rmiServerApp.RmiServer
结果运行出错,异常内容如下:Exception in thread "main" java.rmi.StubNotFoundException: Stub class not found:
 rmiServerApp.RemoteObject_Stub; nested exception is:
        java.lang.ClassNotFoundException: rmiServerApp.RemoteObject_Stub
        at sun.rmi.server.RemoteProxy.getStub(RemoteProxy.java:98)
        at sun.rmi.server.RemoteProxy.getStub(RemoteProxy.java:55)
        at sun.rmi.server.UnicastServerRef.setSkeleton(UnicastServerRef.java:179
)
        at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:14
2)
        at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:12
9)
        at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.
java:275)
        at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.
java:178)
        at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:7
5)
        at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:6
1)
        at rmiServerApp.RemoteObject.<init>(RemoteObject.java:29)
        at rmiServerApp.RmiServer.main(RmiServer.java:31)
Caused by: java.lang.ClassNotFoundException: rmiServerApp.RemoteObject_Stub
        at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
        at sun.rmi.server.RemoteProxy.loadClassFromClass(RemoteProxy.java:191)
        at sun.rmi.server.RemoteProxy.getStub(RemoteProxy.java:93)
        ... 10 more
难道java.rmi.server.codebase只能指定客户端的下载地址而不能动态的扩展服务器端的CLASSPATH吗????????????????