簡體   English   中英

RMI IIOP客戶端對象作為回調

[英]RMI IIOP client object as callback

我正在嘗試構建rmi-iiop應用程序(非常簡單的聊天)。 我需要服務器能夠與客戶端通信,所以我的想法是創建連接用戶的界面:

public interface UserInterface extends Remote { 
    public void receiveMessage(String message) throws RemoteException;
}

然后在客戶端創建帶有方法服務器的User類,可以執行('receiveMessage'):

public class User extends PortableRemoteObject implements UserInterface {

    protected User() throws RemoteException {
        super();
    }

    @Override
    public void receiveMessage(String message) throws RemoteException {
        client.addMessageToGUI();
    }
}

我使用rmic -iiop Chat User生成_Chat_Tie.class _ChatInterface_Stub.class _User_Tie.class _UserInterface_Stub.class

將所有文件放在服務器端和客戶端並運行應用程序后,出現以下錯誤: java.rmi.StubNotFoundException: Stub class not found: User_Stub; nested exception is: java.rmi.StubNotFoundException: Stub class not found: User_Stub; nested exception is:

我想這里的區別是,聊天類是在服務器上創建的,然后客戶端使用接口使用它(可以正常工作),但是用戶類必須在客戶端上創建,因此客戶端部分用作服務器。

我的問題類似於Java RMI-將客戶端作為服務器,但用於rmi-ioop實現。

言歸正傳-如何將本地對象引用發送到服務器,以便它可以對服務器執行操作?

謝謝! 里昂蒂

您創建一個服務器接口,例如:

public interface ChatServer extends Remote {
  public void registerUser(UserInterface user) throws RemoteException;
}

我所缺少的是客戶端上的“ Tie”類(_User_Tie.class)。 通常不需要,但是如果在客戶端創建對象,我也需要提供它。

希望以后可以為其他人節省時間:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM