之乎者烨 发表于 2009-1-16 09:43:25

idl文件自定义类型的参数传递问题

在idl文件中,修改将要传递参数的函数,将里面的所有非基本类型的参数都改为any,然后每种非基本参数类型都另外定义接口,如:
      interface Student {
            void setName(in string n);
            string getName();
      };
      编译idl
      创建自定义的StudentImpl,public class StudentImpl extends StudentPOA implements Student
      在StudentImpl类中实现Student中的接口,如果有其它的功能需求也可以定义其它方法

      在MyServiceServerImpl类中修改带有自定义类型参数的函数,将自定义类型的参数改为Any类型,并修改函数体:
      Student stu = StudentHelper.extract(s);
                system.out.println(stu.getName());
      修改服务器端Server_AOM代码,仿照原来绑定MyServiceServerImpl实例的代码,另外将一个字符串绑定到StudentImpl的实例上
      在客户端将该对象解析出来,创建Any对象,Any a = orb.create_any(),然后用StudentHelper.insert(a,s)方法将Student写入到a的value值里,在将a作为参数,调用那个有自定义类型参数的函数即可
页: [1]
查看完整版本: idl文件自定义类型的参数传递问题