CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

为什么我的rmi 服务器已经成功注册工作正常, 但是客户端远程调用时报错找不到stub类呢

楼主dasunemily(太阳)2005-08-01 18:49:33 在 Java / J2EE / EJB / JMS 提问

小妹刚写好了一个rmi的   程序,服务器端和客户端分布在不同机器上,服务器端已经成功生成了stub和skeleton类,并且成功注册,服务器启动正常,客户端如果是在cmd下运行就工作正常,但是用jbuilderx运行,就出错了,远程调用服务器端代码,  
  客户端如下:  
  package   fund.rmi.client     ;  
  import   java.rmi.*;  
  import   java.net.*;  
  import   java.io.*;  
  import   java.rmi.registry.LocateRegistry;  
  import   java.rmi.registry.Registry;  
  public   class   rmiClient   {  
      public   rmiClient()   {  
   
      }  
  public   boolean   executeImport(){  
  String   host   =   "202.113.121.214:1099";  
  boolean   str=true;  
          try   {  
            //   Registry   registry   =   LocateRegistry.getRegistry(3333);  
  System.setSecurityManager(new   RMISecurityManager());  
              rmiInter   rmistub   =(rmiInter)   Naming.lookup("rmi://"   +   host   +   "/HelloService");  
          System.out.println("this   is   client   ..................");  
            str=rmistub.executeImport()   ;  
  System.out.println("client   message   import---------"+str);  
          }catch(Exception   e){  
          e.printStackTrace()   ;  
  str=false;  
          }  
  return   str;  
  }  
  public   boolean     executeExport(){  
  String   host   =   "202.113.121.214:1099";  
  boolean   str=true;  
          try   {  
        Registry   registry   =   LocateRegistry.getRegistry("202.113.121.214",1099);  
   
          System.setSecurityManager(new   RMISecurityManager());  
   
              rmiInter   rmistub   =(rmiInter)   Naming.lookup("rmi://"   +   host   +   "/HelloService");  
   
          System.out.println("this   is   client   ..................");  
            str=rmistub.executeExport()   ;  
  System.out.println("client   message   export---------"+str);  
          }catch(Exception   e){  
          e.printStackTrace()   ;  
  str=false;  
          }  
  return   str;  
  }  
  public   static   void   main(String   args[]){  
    String   host   =   "202.113.121.214:1099";  
        rmiClient   client=new   rmiClient();  
          System.out.println("this   is   client   ..................");  
  System.out.println("client   message1   export---------");  
        client.executeExport()   ;  
        System.out.println("client   message1   import---------");  
  }  
  }  
   
  在jbuilderx的   错误提示中写道:  
  java.rmi.UnmarshalException:   error   unmarshalling   return;   nested   exception   is:    
  java.lang.ClassNotFoundException:   rmiImpl_Stub  
   
  at   sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown   Source)  
   
  at   java.rmi.Naming.lookup(Naming.java:84)  
   
  at   fund.rmi.client.rmiClient.executeExport(rmiClient.java:37)  
   
  at   fund.rmi.client.rmiClient.main(rmiClient.java:55)  
   
  Caused   by:   java.lang.ClassNotFoundException:   rmiImpl_Stub  
   
  at   java.net.URLClassLoader$1.run(URLClassLoader.java:199)  
   
  at   java.security.AccessController.doPrivileged(Native   Method)  
   
  at   java.net.URLClassLoader.findClass(URLClassLoader.java:187)  
   
  at   java.lang.ClassLoader.loadClass(ClassLoader.java:289)  
   
  at   java.lang.ClassLoader.loadClass(ClassLoader.java:235)  
   
  at   java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)  
   
  at   java.lang.Class.forName0(Native   Method)  
   
  at   java.lang.Class.forName(Class.java:219)  
   
  at   sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:430)  
   
  at   sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)  
   
  at   java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:631)  
   
  at   java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:257)  
   
  at   sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:200)  
   
  at   java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513)  
   
  at   java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)  
   
  at   java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)  
   
  at   java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)  
   
  at   java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)  
   
  ...   4   more  
  看来是找不到stub类,我在部署客户端是,把服务器端生成的stub类已经拷贝到了客户端了   与上边的类在同一个目录下,可是为什么找不到呢?小妹在线等,谢谢各位大侠了  
  问题点数:20、回复次数:1Top

1 楼Henu(守护进程)回复于 2005-11-10 19:38:44 得分 0

顶你Top

相关问题

  • rmi远程调用问题,找不到主机
  • 请教各位高手一个远程调用(RMI)的问题,火烧眉毛!
  • 用RMI进行远程对象调用的时候,可不可以实现多个调用远程对象的并发操作
  • DCOM远程调用问题
  • 远程调用对象
  • 怎样远程调用com+!!!
  • 如何远程调用mts?
  • 远程调用组件
  • 如何远程调用EJB?
  • java远程方法调用?

关键词

  • .net
  • 服务器
  • 客户
  • client
  • rmi
  • 正常
  • registry
  • import java
  • str

得分解答快速导航

  • 帖主:dasunemily

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo