[英]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.