【发布时间】:2015-04-22 06:02:42
【问题描述】:
我正在将 GWT 应用程序集成到具有不同捆绑包的 OSGi 环境中。老实说,我不是图形用户界面和 GWT 开发方面的专家,所以,也许我正在尝试做任何不可能的事情。在 OSGi 环境中,我使用的是事件通信过程。通过这种方式,GWT 项目将事件发送到基于 Hibernate 的数据库通信器包。然后,数据库连接器响应另一个事件,其属性包含与对象列表相关的属性,如下所示:
List<KpiDesc> lKPIs = (List<KpiDesc>)event.getProperty("KPIlist");
此列表包含类型为 com.cartif.hibernatemappings.KpiDesc 的对象。然而,这个包是数据库连接器的内部,如果我尝试在 GWT 的客户端使用它,我会得到一个错误。为了解决这个问题,我在 GWT 项目的共享包中复制了相同的对象以避免编译错误,我想将一个对象转换为另一个对象。这种目的的代码是下一个:
List<com.cartif.gui.optimization.shared.KpiDesc> lKPIs2 = new ArrayList<com.cartif.gui.optimization.shared.KpiDesc>();
for(int i = 0; i < lKPIs.size(); i++){
lKPIs2.add(new KpiDesc(lKPIs.get(i).getKpiId(), lKPIs.get(i).getName(), lKPIs.get(i).getDescription(),lKPIs.get(i).getDefinition(), lKPIs.get(i).getBuildingName()));
}
尽管如此,在创建新对象(调用构造函数)时,代码在 EventManager 中委托并且没有响应。你知道我可以如何管理不同的对象吗?
提前非常感谢
【问题讨论】:
-
你是如何将对象从服务器返回给客户端的?你能发布它
-
好吧,我创建了一个 HashMap
,其中的键是我在内部使用的参数和前面提到的 List。这是来自客户端的异步调用中的返回类型。我的意思是,onSuccess 方法的返回对象与此类似。