java - CORBA 序列 : can I define sequences of objects w/methods?

标签 java rpc sequence idl corba

我有一个接口(interface),其中的方法应返回项目列表,并且每个项目都应具有与其关联的某些方法。例如,我想定义一个方法 listAllItems() ,它返回一堆“item”对象,这些对象附加了方法(这样我就可以让客户端进程选择其中一个项目并说 itemone.buy() 例如,这将在服务器上执行相应的方法)。

我可以在 CORBA 中执行此操作吗?看来我无法定义“接口(interface)项”,然后在其他一些接口(interface)中说“序列”。

如果有影响的话,我会将我的 idl 编译为 Java。

谢谢!

最佳答案

Peyton 所需的信息,即 IDL 序列和 Java 集合类型之间的概念映射,可以在本手册的物理页 42、索引页 23 上找到:

http://www.omg.org/spec/I2JAV/1.3/

并回答他的问题:显然,即使您 typedef,java 实际上也没有指定序列对象。当然,欢迎您手动执行此操作。但是,如果您想依赖 idlj 自动为您完成的操作,则必须使用 Helper.java 中的方法。它们使用 [] 类型的简单数组,并包括 getter 和 setter。

简而言之:如果您的 idl 包含

struct MyObject
{
  long my_int;
};
typedef sequence<MyObject> MyObjects;
interface HasArray
{
  attribute MyObjects some_stuff;
};

那么你的java实现需要:

public class HasArrayImpl extends HasArrayPOA
{
  private List<MyObject> local_storage;

  /** getter */
  MyObject[] some_stuff()
  {
    /* ... */
  }

  /** setter */
  void some_stuff(MyObject[] newSome_stuff)
  {
    /* ... */
  }
}

在底层,Java 会为您创建 MyObjectsHelper 和 MyObjectsHolder。

关于java - CORBA 序列 : can I define sequences of objects w/methods?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722121/

相关文章:

java - 为 XWiki 中的文档设置用户和组权限

mysql - GWT Hibernate 程序 2 中的错误

http - HTTP和RPC的比较

sql-server - SQL Server 序列设置当前值

c - 如何使用 ANSI 转义序列设置棕色?

java - 在哪里可以找到 Vaadin 版本 6 文档

internet-explorer - IE 浏览器上未检测到可用的 Java

java线程通信,独立文件读写

java - AppEngine下的RPC序列化策略文件

python - 如何在不修改任何一个的情况下在 Python 中连接两个列表?