我正在编写一个Thrift服务,其基本功能是将所有查询代理到EJB Bean。基本上,服务将接收调用,查找本地bean,将查询转发给bean并将答案转发回客户端。
主要问题是thrift IDL不支持特定于语言的类型。例如,方法参数之一是实现接口Inamed(扩展Serializable)的对象。
如何告诉thrift我想从“my.package.interfaces.INamed”导入此接口并将其用作有效参数/返回类型?
答案 0 :(得分:2)
如果要通过Thrift发送任意对象,可以将它们序列化并将它们作为Thrift二进制数据发送,并在另一端对它们进行反序列化。这会绕过类型检查。
但Thrift的设计与语言无关,所以我认为你不能在IDL中表达特定于语言的类型。
你能定义一个匹配INamed
的Thrift结构,然后在你的其他Thrift方法中使用它吗?