我正在编写Thrift服务,其基本功能是将所有查询代理到EJB Bean。基本上,服务将接收呼叫,查找本地bean,将查询转发到bean并将答案转发回客户端。
主要问题是节俭的IDL不支持特定于语言的类型。例如,方法参数之一是实现接口Inamed(扩展了Serializable)的对象。
如何告诉thrift我想从“ my.package.interfaces.INamed”导入此接口并将其用作有效的参数/返回类型?
最佳答案
如果要通过Thrift发送任意对象,可以对其进行序列化并将其作为Thrift二进制数据发送,然后在另一端反序列化。但是,这将绕过类型检查。
但是Thrift旨在独立于语言,因此我认为您不能在IDL中表达特定于语言的类型。
您是否可以只定义与INamed
匹配的Thrift结构,然后在其他Thrift方法中使用它?
关于java - 如何在Thrift服务中使用特定于Java的类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9466326/