remote object implements illegal remote interface

  最近在学习RMI,用RMI写一个使用远程对象完成计算时抛出的异常remote object implements illegal remote interface

最近在学习EJb,用EJB写一个使用远程对象完成计算时抛出的异常remote object implements illegal remote interface

      程序如下:

/***********接口*****************/

public interface calc extends Remote {

 
 public int calc(int a,int b); 
}

 

/***********实现类*****************/

public class calcImpl extends UnicastRemoteObject implements calc {
 public calcImpl() throws RemoteException {
  super();
 }
 public int calc(int a, int b) {
  if(a>b){
        return a-b;   
  }else if(a==b){
   return a*b;
  }else{
  return a+b;
  }
 }
}

/****************测试类*****************/

 public static void main(String[] args) {
            try {
    Registry re=LocateRegistry.createRegistry(2000);
    calcImpl calc=new calcImpl();
    re.bind("calc", calc);
    System.out.println("服务器已经启动了");
   } catch (Exception e) {
    e.printStackTrace();
   }
 }

然后就是将接口导出,放到另一个工程里测试,测试工程的代码如下:

public static void main(String[] args) {
  String url="rmi://localhost:2000/calc";
  try {
   calc c=(calc) Naming.lookup(url);
   int result=c.calc(10, 5);
   System.out.println("计算的结果是:"+result);
  } catch (Exception e) {
   e.printStackTrace();
     }
 
 }

很简单的一个问题,当我启动服务器的时候,程序报了一个异常:


我到网上查了一下,很多都是英文的,有中文的也没有说一个所以然来,所以只好自己去出问题,我把抛出的异常仔细看了一下子,原来原来异常信息告诉我,自己定义的接口里面的方法有问题,我仔细看了一下方法,方法好像少了点什么,原来使用远程方法调用都必须抛出一个RemoteException,因为 网络出现类似机器故障或者网络阻塞等问题时会产生RemoteException。在接口定义的方法里throws RemoteException,问题就解决了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值