2012-02-27 53 views
1

我在写一个Thrift服务,其基本功能是将所有查询代理到EJB Beans。基本上,服务将接收到一个调用,查找一个本地bean,将查询转发给bean并将答案转发回客户端。如何在Thrift服务中使用特定于java的类型?

主要问题是节俭IDL不支持语言特定类型。例如,其中一个方法参数是实现Inamed接口的对象(它扩展了Serializable)。

我怎么能告诉我想导入,说:“my.package.interfaces.INamed”这个接口,并把它作为一个有效的参数/返回类型节俭?

回答

2

如果你想通过节俭来发送任意对象,可以序列它们并将它们作为储蓄的二进制数据,并在另一端反序列化它们。这将绕过类型检查。

但节俭的设计是与语言无关的,所以我不认为你可以表达在IDL语言特定的类型。

可你刚才定义匹配INamed,然后在其他储蓄方法使用此旧货结构?

+0

我不能定义这个结构 - 所有我知道我收到的对象是,它具有界面Inamed公司,我对它一无所知的课,所以我不知道它包含的领域,所以我不能写一个结构。 我听得懂的语言,独立的概念,但我希望,这让节俭更具体的语言机制,像“无效的setName(1:java类型(my.package.interfaces.INamed)名称)” – r3mbol 2012-02-28 08:34:24

+0

另一件事,我想我可以做的是用节俭生成代码,然后修改gen-code来调整类型和导入以及内容,但是我觉得这不是正确的解决方案。 – r3mbol 2012-02-28 08:39:16

相关问题