【问题标题】:Convert rmi interface to CORBA .idl将 rmi 接口转换为 CORBA .idl
【发布时间】:2023-03-13 21:15:01
【问题描述】:

如何在 CORBA 中将我的 rmi 接口转换为 .idl 文件。我目前在聊天应用程序中工作。所以这是我的界面:

import java.rmi.*;

public interface ChatServer extends Remote{
      void register(ChatClient c) throws RemoteException;
      void broadcast(String s) throws RemoteException;
}

我试过这样做,但它说存在错误,“void”和 ChatClient 是未声明的类型。我该如何解决这个问题?谢谢你的帮助:)

p.s rmi 代码是从网上得到的,我只需要它作为我的参考,以便我可以将它转换为 CORBA 应用程序。

【问题讨论】:

  • ChatClient 类或接口是什么?顺便说一句,CORBA 是一种死技术,那么,你为什么对它感兴趣?
  • 它是一个与ChatServer相同的接口,它的类型相同,所以我没有包括它。对于 CORBA,学校的东西,我的老师希望我们将在互联网上看到的 RMI 代码转换为 CORBA 应用程序。

标签: java corba


【解决方案1】:

您可以尝试扩展java.io.Serializable:

import java.io.Serializable;
import java.rmi.Remote;
import java.rmi.RemoteException;

public interface ChatServer extends Remote, Serializable {
    void register(ChatClient c) throws RemoteException;
    void broadcast(String s) throws RemoteException;
}
import java.io.Serializable;
import java.rmi.Remote;
import java.rmi.RemoteException;

public interface ChatClient extends Remote, Serializable {
    void register(ChatServer c) throws RemoteException;
    void broadcast(String s) throws RemoteException;
}

所有参数和所有非void返回类型必须是Serializable的原因。 StringSerializable

除此之外,这似乎是一个非常糟糕的设计。这些接口旨在表示每个端点提供的操作。另一方面,Serializable stuff 是端点之间传输的数据。通过创建同时使用这两种帽子的类/对象/接口,它肯定会变得一团糟。

一个更好的主意是:

import java.io.Serializable;

public class ClientId implements Serializable {
   // Data used to identify the client.
}
import java.io.Serializable;

public class ServerId implements Serializable {
   // Data used to identify the server.
}
import java.rmi.Remote;
import java.rmi.RemoteException;

public interface ChatServer extends Remote {
    void register(ClientId c) throws RemoteException;
    void broadcast(String s) throws RemoteException;
}
import java.rmi.Remote;
import java.rmi.RemoteException;

public interface ChatClient extends Remote {
    void register(ServerId c) throws RemoteException;
    void broadcast(String s) throws RemoteException;
}

【讨论】:

  • 这对我的程序来说是一个很好的提示,不幸的是,我想将我的界面转换为 CORBA .idl 文件,而不是在 RMI 界面中。所以它没有回答我的问题:D.
猜你喜欢
  • 2010-11-21
  • 1970-01-01
  • 2018-12-05
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
相关资源
最近更新 更多