有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java应用程序的设计

我有一个关于java RMI应用程序的具体设计的问题。我刚开始学习如何与rmi合作。我有一个小应用程序:一个小型证券交易所应用程序。所以有股票交易类,每个人都有仓库类。depot类具有市场参考。market类有一个创建仓库的函数(它返回一个新仓库)。我希望以这种方式设计应用程序,远程客户端可以获得他自己的仓库的引用,并且所有客户端共享股票市场类(因此运行时只有一个对象)

我需要设计一个扩展“远程”接口的接口。这个接口描述了客户端可以调用的函数。但是股票交易所和仓库的课程呢?他们是否需要实现或扩展一个类来实现rmi

在我的界面中有一个函数,它打开一个新的仓库并返回一个仓库对象。但当我调用该函数时,有一个例外:

线程“main”java中出现异常。lang.ClassCastException:com。太阳代理$Proxy1无法投射到仓库


共 (2) 个答案

  1. # 1 楼答案

    使用RMI远程对象时,不能将其转换为混凝土类仓库。你必须转换到远程接口

  2. # 2 楼答案

    您需要两个接口,StockExchangeDepot。每个接口都应该扩展Remote。但只有实现StockExchange的类的实例才会绑定到RMI注册表中。客户端将首先使用RMI注册表中的StockExchange名称查找它。从中,他们将调用一个合适的远程方法来获取对自己的Depot的引用