thrift描述文件形式现有的java类

时间:2011-01-22 08:23:39

标签: serialization thrift thrift-protocol

有一种方法可以使用refletion为现有的java类生成thrift描述文件吗? Avro有这个功能,但我需要使用thrift,我在java中有很多现有的业务类,我需要在c ++和java中进行序列化。

2 个答案:

答案 0 :(得分:1)

输入Swift:https://github.com/facebook/swift/

git clone https://github.com/facebook/swift
cd swift ; mvn package

特别是swift2thrift。将您的课程标记为:https://github.com/facebook/swift/

并运行:

MY_CLASSES=$HOME/ExampleService/target/ExampleService-1.0-SNAPSHOT.jar  # just an example
cd ~/ExampleService ; mvn compile package && java -cp ~/swift/target/swift2thrift-generator-cli-0.15.0-SNAPSHOT-standalone.jar:$MY_CLASSEScom.facebook.swift.generator.swift2thrift.Main -package net.mycompany ExampleService -map ExampleService path/to/base.thrift -namespace py mycompany.thrift -namespace java net.mycompany.thrift -namespace cpp mycompany

为存在的Java类输出Thrift .idls。

另见:Can generate .thrift files from existing java/scala interfaces and data types?

答案 1 :(得分:0)

不是直接来自图书馆; thrift生成它自己的类和一些验证代码,以便两个“结束”(客户端/服务器)可以无错误地互操作。您应该编写代码来将业务对象映射到thrift对象。